8
fork()
が呼び出された後、フォークの後の最初の命令からプログラムを続ける必要がある場合、STARTという単語が2回印刷されるのはなぜですか?なぜfork()の前のprintf()がfork()の後でも実行されるのはなぜですか?
#include<stdio.h>
#include<unistd.h>
int main(){
int pid;
printf("START...");
pid = fork();
printf("%d: I've got %d\n", getpid(), pid);
return 0;
}
例えば可能な出力は次のようになります。
を持っていますSTART ... 605:私は606 ... 606
STARTを持っている:私は0
文字列の最後に改行( '\ n')を追加して、バッファをフラッシュする必要があります。 – ciamej
@ciamejはい、しかし、それは(わずかに)異なる出力を与えるでしょう。 – trojanfoe
@ SergeyA私はそれが嘘であることは知らなかった。また、なぜあなたはdasblinkenlightの同じ質問をしていないのですか? – trojanfoe