【发布时间】:2017-09-12 09:47:27
【问题描述】:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
write(STDOUT_FILENO,"1",1);
if(fork() > 0) {
write(STDOUT_FILENO,"2",1);
write(STDOUT_FILENO,"3",1);
}
else {
write(STDOUT_FILENO,"4",1);
write(STDOUT_FILENO,"5",1);
}
write(STDOUT_FILENO,"\n",1);
return 0;
}
输出为1 2 3 \n 4 5 \n
为什么如果我替换 printf(最后没有换行符)的所有写入函数,例如 write(STDOUT_FILENO,"1",1)==printf("1"),我得到 1 2 3 \n 1 4 5 \n,就像孩子正在复制叉子上方的行一样?
【问题讨论】: