我正在开发一个作业,程序将文件描述符作为参数(通常来自exec调用中的父级),并从文件读取并写入文件描述符,在我的测试中,我意识到该程序将工作从命令行,如果我使用0,1或2作为文件描述符,不给出错误.这对我来说很有意义,除了我可以写到stdin,并在屏幕上显示.
这是否有解释?我一直以为在stdin / stdout有一些保护,你当然不能fprintf到stdin或从stdout的fgets.
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
- int main()
- {
- char message[20];
- read(STDOUT_FILENO,message,20);
- write(STDIN_FILENO,20);
- return 0;
- }