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