其他分享
首页 > 其他分享> > stdin和stdout实际上是同一个文件吗?

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引用控制台.)

标签:c-3,linux,stdin,stdout,io-redirection
来源: https://codeday.me/bug/20190727/1549513.html