我正在开发一个作业,程序将文件描述符作为参数(通常来自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; }