stdout我想知道 Linux C和STDOUT_FILENOLinux C之间的区别。
经过一番搜索工作,我得出以下结论。你能帮我复习一下并纠正其中的任何错误吗?谢谢
stdout属于C语言的标准I/O流;其类型为 FILE* 并在 stdio.h 中定义STDOUT_FILENO,具有 int 类型,定义在unistd.h。它是LINUX系统的文件描述符。中unistd.h,解释如下:
The following symbolic constants shall be defined for file streams: STDERR_FILENO File number of stderr; 2. STDIN_FILENO File number of stdin; 0. STDOUT_FILENO File number of stdout; 1.
所以,在我看来,STDOUT_FILENO属于系统级的调用,在某种程度上,就像一个系统API。STDOUT_FILENO可用于描述系统中的任何设备。
位于stdout更高级别(用户级别?),实际上封装了STDOUT_FILENO. stdout有 I/O 缓冲区。
这就是我对他们差异的理解。任何意见或更正表示赞赏,谢谢。