#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
Cフォークは
なぜ私が交換した場合、すべてが同じように、私は1 2 3 \n 1 4 5 \n
を取得write(STDOUT_FILENO,"1",1)==printf("1")
のように(最後に改行文字なし)printf
ための関数を書くことということで、親のコピーです子はフォークの上の行をコピーしていますか?