sem_openの第4引数についてmanには
The value argument specifies the initial value for the new semaphore.
と記載がありますが、valueがどのような意味をもつvalueなのかをご教示ください。
以下のようにsem_openの第4引数を2とした場合、sem_postを2回実施している状態で初期化すると思い以下のようなプログラムを書いて実行してみたのですが、sem_waitのところで止まってしまいます。2回分のsem_postがあるので、sem_waitでとまらない想定でした。
c
1#include <semaphore.h> 2#include <inttypes.h> 3#include <stdio.h> 4#include <unistd.h> 5#include <fcntl.h> 6 7// gcc -pthread -g semaphore_test.c 8 9sem_t *sem; 10 11int main(void) 12{ 13 sem = sem_open("sem", O_CREAT, 0600, 2); 14 //sem_post(sem); 15 //sem_post(sem); 16 sem_wait(sem); 17 sem_wait(sem); 18 sem_close(sem); 19 sem_unlink("sem"); 20 return (0); 21}
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/09 12:25