Difference in Output between printf("\n...") and printf("..\n") in Linux
本问题已经有最佳答案,请猛点这里访问。
谁能解释一下为什么这两个相似的代码(除了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <unistd.h> #include <sys/wait.h> #include <stdio.h> int main() { int pid, i=0; printf("Ready to fork\ "); pid=fork(); if (pid==0) { printf("Child starts\ "); for (i=0; i<1000; i++); printf("Child ends\ "); } else { wait(0); for (i=0; i<1000; i++); printf("Parent process ends\ "); } return 1; } |
输出:
还有这个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <unistd.h> #include<sys/wait.h> #include <stdio.h> int main() { int pid, i=0; printf("\ Ready to fork %d", getpid()); pid=fork(); if (pid==0) { printf("\ Child starts %d",getpid()); for (i=0; i<1000; i++); printf("\ Child ends %d", getpid()); } else { wait(0); for (i=0; i<1000; i++); printf("\ Parent process ends %d", getpid()); } return 1; } |
结果:
我真的找不到任何令人满意的理由来解释为什么
提前谢谢你。
除非程序的输出被重定向到一个文件,否则
在
之前执行的