为什么stdin和stdout被认为是C中的文件?

时间:2015-04-10 15:30:13

标签: c stdout stdin

例如,stdio.h库有一些函数需要FILE *参数,但接受stdin来自终端的用户输入。

2 个答案:

答案 0 :(得分:3)

C stdio函数在 streams 上运行,而不是在文件上运行。就代码而言,流只是字节的消费者(输出流)或生产者(输入流)。

流可能与磁盘上的文件相关联。它也可能与终端相关联。或打印机。或者是网络套接字。或者您可能想要与之沟通的任何其他内容。流是抽象,可以读取或写入一串字节。

stdinstdout(以及stderr)是预定义的FILE *对象,通常是指您的控制台,但您可以在命令行或内部覆盖你的代码。

答案 1 :(得分:0)

stdinstdout只不过是标准输入和输出文件的指针。由于您可以在代码中或使用命令提示符更改这些内容,因此无法指向实际输入,因为您无法更改它。

stdinstdio只是从standard outputstandard input读取或写入的文件中获取信息。这样,使用命令和代码更改它就容易多了。