使用 stdout 作为 write 的第一个参数
use stdout as the first argument of write
我使用 write
系统调用使用 unistd.h
header 将文本发送到标准输出。据我所知,stdout 的数值是 1。那么为什么我不能使用 stdout
而不是 1
作为 write
的第一个参数?
#include <unistd.h> // write
#include <stdio.h> // stdout
int main(void)
{
write(stdout, "This will be output to standard out\n", 36);
return 0;
}
Google表示:标准输出值stdout。它的值为 1.
要写入的第一个参数是 文件描述符,它是一个整数。这是原生 Unix I/O.
stdout
这是一个旨在与 C 库 I/O 例程一起使用的对象。它是指向内部 FILE
对象的指针。不是整数。
stdout
在其他上下文中表示其他含义。我们经常用它来指代 'standard output' 文件描述符的 Unix 概念,它确实是 1。但这并不意味着 'stdout' 在任意编程语言中等价于 1。而是,它将是语言运行时处理输出所需的任何机制。
我使用 write
系统调用使用 unistd.h
header 将文本发送到标准输出。据我所知,stdout 的数值是 1。那么为什么我不能使用 stdout
而不是 1
作为 write
的第一个参数?
#include <unistd.h> // write
#include <stdio.h> // stdout
int main(void)
{
write(stdout, "This will be output to standard out\n", 36);
return 0;
}
Google表示:标准输出值stdout。它的值为 1.
要写入的第一个参数是 文件描述符,它是一个整数。这是原生 Unix I/O.
stdout
这是一个旨在与 C 库 I/O 例程一起使用的对象。它是指向内部 FILE
对象的指针。不是整数。
stdout
在其他上下文中表示其他含义。我们经常用它来指代 'standard output' 文件描述符的 Unix 概念,它确实是 1。但这并不意味着 'stdout' 在任意编程语言中等价于 1。而是,它将是语言运行时处理输出所需的任何机制。