起因¶
遇到过一个面试题, 以下程序打印几个'A'
#include <stdio.h>
#include <unistd.h>
int main() {
printf("A");
fork();
printf("A");
}
#include <stdio.h>
#include <unistd.h>
int main() {
printf("A\n");
fork();
printf("A");
}
#./a.out > r.log
#cat r.log
Linux 缓冲介绍¶
分为无缓冲、行缓冲和全缓冲
演示¶
发现有些程序可以输出到屏幕,重定向到文件后,执行ctl+c
退出后却没有任何内容,例如以下
#include <stdio.h>
#include <unistd.h>
int main(void) {
while (1) {
printf("Hello World\n");
sleep(1);
}
}
#./a.out > r.log