问题与标题相同,操作系统是linux。我试过几个例子。
dup(1);
close(1);
int fd = open("/dev/stdout", O_WRONLY);
这导致了"/dev/stdout No such file"错误。
我认为文件描述符只是指向结构文件的指针数组的索引,如果没有fd引用该 结构性文件然后我尝试了 这起到了作用。 我想我遗漏了一些核心概念。感谢您的帮助。int tmp = dup(1);
close(1);
dup(tmp, 1);
int fd = open("/dev/stdout", O_WRONLY);
您关闭了stdout,然后试图打开它。但您已经关闭了它,所以没有什么可打开的。如果您没有stdout,因为您已经关闭了它,那么/dev/stdout
就不存在。
我很好奇你怎么会想到这个。