semop(emptyid,&V,1); //对emptyid执行 V 操作
sleep(1);
}
printf("ConsunerB is over\n");
exit(0);
}
}
}
/* 父进程返回后回收3个子进程 */
wait(0);
wait(0);
wait(0);
/* 断开并撤消2个共享内存 */
shmdt(array);
shmctl(arrayid,IPC_RMID,0);
shmctl(get);
shmctl(getid,IPC_RMID,0);
/* 撤消3个信号量集 */
semctl(emptyid,IPC_RMID,0);
semctl(fullid,IPC_RMID,0);
semctl(mutexid,IPC_RMID,0);
exit(0);
}