DO
#include <func.h>
// printf 的输出会被暂存到缓冲区中(为了提高输出效率),而不是立即显示,直到缓冲区满或者遇到特定条件才进行刷新。遇到换行符 \n 是触发缓冲区刷新的一个常见条件
int main(int argc, char* argv[]) {
for (int i = 0; i < 3; i++) {
// 无\n,攒着,继承亲进程缓冲区
// printf("a");
// fork();
// a_num: 3 * 8 = 24
// fork();
// printf("a");
// a_num: 3 * 8 = 24
// 有\n,用户态缓冲区遇换行刷新
// printf("a\n");
// fork();
// a_num: 1 + 2 + 4 = 7
// fork();
// printf("a\n");
// a_num: 2 + 4 + 8 = 14
}
return 0;
}
无\n:
有\n: