stdin和stdout实际上是同一个文件吗?

我完全糊涂了,stdin,stdout和stderr是否有可能在内部指向同一个文件描述符?
因为如果我想从控制台读取字符串,如果我使用stdin作为输入或stdout,那么它在C中没有区别.

read(1,buf,200)作为读取(0,buf,200)如何实现?

(0 == STDIN_FILENO == fileno(stdin),
1 == STDOUT_FILENO == fileno(stdout))

解决方法:

当输入来自控制台,并且输出进入控制台时,所有三个确实碰巧引用同一个文件. (但是控制台设备具有完全不同的读写实现.)

无论如何,你应该只为他们的预期目的使用stdin / stdout / stderr;否则,如下所示的重定向将无效:

<inputfile myprogram >outputfile

(这里,stdin和stdout引用两个不同的文件,stderr引用控制台.)

上一篇:javascript – Node.js child_process exec,stdin没有被传递给ssh


下一篇:python 监听键盘输入