// gcc -Wall -lpthread test_sem.c // 動かんときは rm /dev/shm/sem.unko #include <fcntl.h> // O_CREAT #include <semaphore.h> // sem_wait #include <stdio.h> // printf #include <unistd.h> // sleep int main() { // 1を指定するとバイナリセマフォになるよ sem_t *sem = sem_open("/unko", O_CREAT, 0600, 1); printf("ロック\n"); sem_wait(sem); printf("30秒スリープ\n"); sleep(30); printf("アンロック\n"); sem_post(sem); return 0; }
- 長所
- 実装が超簡単
- 結構速い
- 短所
- プログラムが途中で死ぬとロックがかかりっぱなしになる
- 他言語と連携はできない