[英]sem_wait() in producer and consumer
這是我的生產者和消費者問題的代碼。 它可以編譯,但是當我運行程序時它什么都不打印。 我測試程序,發現問題可能與sem_wait()有關。 為什么程序可以編譯但輸出錯誤? 謝謝。
int main(int argc, char *argv[]) {
pthread_mutex_init(&mutex, NULL);
empty = sem_open("/mysem", O_CREAT, 0644, BUFFER_SIZE);
full = sem_open("/mysem", O_CREAT, 0644, 0);
pthread_create(&pro_thread, NULL, producer, NULL);
pthread_create(&con_thread, NULL, consumer, NULL);
pthread_exit(NULL);
return 0;
}
sem_open()函數是對的嗎? 我評論了以下行,程序可以運行...也許問題是關於sem_open?
empty = sem_open("/mysem", O_CREAT, 0644, BUFFER_SIZE);
看來你的制作人從未制作任何東西
檢查信號量名稱。 可能是empty
和full
是相同的實例為你使用相同的名稱都在你的sem_open
功能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.