簡體   English   中英

sem_wait 從不返回返回值

[英]sem_wait never returns a return value

我正在嘗試使用sem_wait()創建一個鎖,並且在sem_wait調用之前和之后我有一個printf (我沒有看到它被打印出來: printf("after sem wait ");sem_wait調用永遠不會返回。

sem_t* sem;
Thank you
int 32_t retVal = -1;
printf("before sem wait ");
retVal  = sem_wait(sem);
printf("after sem wait ");

我該如何調試這個問題?

sem_wait的參數必須指向您已使用sem_init初始化的實際sem_t object。 例如:

sem_t sem;
sem_init(&sem, 1);
printf("before sem wait\n");
sem_wait(&sem);
printf("after sem wait\n");
sem_destroy(&sem);

當然,如果您將此 object 用於實際信號,您還需要安排在別處調用sem_post()以增加信號量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM