如何在使用匿名posix信號量的進程中實現 生產者/ consmer問題? (這意味着我需要有2個進程,其打印反過來一些文本,第二個可以從1日開始分叉)使用posix無名信號量的IPC
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點時, 但我發現「未命名信號或者私有,通過fork()繼承「在oracle文檔中http://docs.oracle.com/cd/E19253-01/816-5137/sync-39/index.html 有什麼問題?
我的解決辦法是在這裏https://www.dropbox.com/s/zzgsyj9rq1ngv0s/ost_13p.c
你能更具體一點嗎?不清楚你在問什麼。 – Rhs
2過程:第二個從第一個分叉開始,他們都應該交替打印一些東西。任務是使用未命名的posix信號量。據我所知,共享內存是這種情況下的解決方案,但我不知道如何。 –