匿名posixセマフォを使用するプロセスで生産者/消費者の問題を実現するには? (つまり、テキストを順番に出力する2つのプロセスが必要です.2番目は1番目からフォークできます)
pthread_t pchild;
int i = 0;
pid_t pid;
sem_init(&fst, 1, 1);
sem_init(&scnd, 1, 0);
if((pid = fork()) == 0){
while(i<10){
sem_wait(&scnd);
printf("CHILD\n");
sem_post(&fst);
i++;
}
}else if(pid != -1){
while(i<10){
sem_wait(&fst);
printf("parent\n");
sem_post(&scnd);
i++;
}
}else{ printf("error - fork !!!\n");}
sem_destroy(&fst);
sem_destroy(&scnd);
このコードは「親」のみを出力します-1回ですが、Oracleドキュメントhttp://docs.oracle.com/cd/E19253-01/816-5137で「名前のないセマフォはプライベートであり、fork()を介して継承されます」とわかりました/sync-39/index.html どうしたの?
私の解決策はこちらhttps://www.dropbox.com/s/zzgsyj9rq1ngv0s/ost_13p.c