以下是一个简单的C程序:
#include <unistd.h>
#include <stdio.h>
int main(void)
{
while (1)
{
printf("Hello World\n");
sleep(1);
}
}
Run Code Online (Sandbox Code Playgroud)
构建并运行它," Hello World"将打印在终端中:
$ ./a.out
Hello World
Hello World
Hello World
Run Code Online (Sandbox Code Playgroud)
但如果stdout重定向到文件,运行一段时间后,文件中仍然没有任何内容:
$ ./a.out > log.txt
^C
$ cat log.txt
$
Run Code Online (Sandbox Code Playgroud)
为什么printf输出到stdout重定向到的文件?