gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:04:41 26 4
gpt4 key购买 nike

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

read(1, buf, 200)read(0, buf, 200) 这怎么可能?

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

最佳答案

当输入来自控制台,而输出转到控制台时,这三者确实碰巧引用了同一个文件。 (但是控制台设备在读取和写入方面有完全不同的实现。)

无论如何,您应该仅将 stdin/stdout/stderr 用于其预期目的;否则,像下面这样的重定向将不起作用:

<inputfile myprogram >outputfile

(这里的stdinstdout指的是两个不同的文件,stderr指的是控制台。)

关于c - stdin 和 stdout 实际上是同一个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51532911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com