【发布时间】:2020-08-30 13:54:03
【问题描述】:
我使用write 系统调用使用unistd.h 标头将文本发送到标准输出。 AFAIK,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;
}
谷歌说:标准输出值stdout。它的值为 1。
【问题讨论】:
-
1是一个int;stdout是FILE* -
@pmg 为什么?我无法得到它。
-
因为C11 7.21...: 标题
<stdio.h>定义了...stdout这是''指向文件的指针''类型的表达式 -
您不能使用
stdout,但可以使用STDOUT_FILENO。
标签: c stdout system-calls