为什么 stdin 和 stdout 被认为是 C 中的文件?
Why are stdin and stdout considered files in C?
例如,stdio.h
库有一些函数需要 FILE *
参数,但接受 stdin
用户从终端输入。
C stdio
函数在 流 上运行,而不是文件。就您的代码而言,流只是字节的消费者(输出流)或生产者(输入流)。
流可能与磁盘上的文件相关联。它也可以与终端相关联。或者打印机。或网络套接字。或者您可能想与之交流的任何其他内容。流是任何可以读取或写入字节串的东西的抽象。
stdin
和 stdout
(以及 stderr
)是预定义的 FILE *
对象,它们通常指的是您的控制台,尽管您可以在命令行中覆盖它或在您的代码中。
stdin
和stdout
无非就是标准输入输出文件的指针。由于您可以在代码中或使用命令提示符更改这些,因此它们不能指向实际输入,因为那样您将无法更改它。
stdin
和stdio
只是从standard output
或standard input
读取或写入的文件中获取信息。这样使用命令和代码更改它就容易多了。
例如,stdio.h
库有一些函数需要 FILE *
参数,但接受 stdin
用户从终端输入。
C stdio
函数在 流 上运行,而不是文件。就您的代码而言,流只是字节的消费者(输出流)或生产者(输入流)。
流可能与磁盘上的文件相关联。它也可以与终端相关联。或者打印机。或网络套接字。或者您可能想与之交流的任何其他内容。流是任何可以读取或写入字节串的东西的抽象。
stdin
和 stdout
(以及 stderr
)是预定义的 FILE *
对象,它们通常指的是您的控制台,尽管您可以在命令行中覆盖它或在您的代码中。
stdin
和stdout
无非就是标准输入输出文件的指针。由于您可以在代码中或使用命令提示符更改这些,因此它们不能指向实际输入,因为那样您将无法更改它。
stdin
和stdio
只是从standard output
或standard input
读取或写入的文件中获取信息。这样使用命令和代码更改它就容易多了。