新しいC dev。私は印刷する三つのプロセスを同期しようとしている[FATHER] [SON] [孫] [父] [SON] [孫]このコードで:3つのプロセスを同期させようとしないでください
代わりint main(int argc, char **argv)
{
int c = 0;
while (c<2)
{
c++;
printf("[FATHER]");
pid_t son = fork();
if (son == 0)
{
printf("[SON]");
pid_t grandson = fork();
if (grandson == 0)
{
printf("[GRANDSON]");
return 0;
}
wait(NULL);
return 0;
}
wait(NULL);
};
}
、イムこの出力を得る:[父] [ [息子] [父親] [父親] [父親] [父親] [息子] [父親] [父親] [父親] [父親]
私は誤解していたり、コードを待つ?本当にありがとう。
ストリーム 'fflush(stdout)'をフラッシュして、役立つかどうか確認してください。 –
また、 'fprintf(stderr、" [FATHER] ");'のようにstderrに直接書き込んでください。 –
K-balloすべてのprintfの後にfflushを使用した後、完全に動作します。あなたは非常に頑張ります! – juancancela