sem_open和sem_init的使用示例
时间: 2023-12-12 09:05:38 浏览: 109
1. sem_open的使用示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>
int main(){
sem_t *sem;
sem = sem_open("/mysem", O_CREAT, 0644, 1); // 创建一个名为/mysem的信号量,初值为1
if (sem == SEM_FAILED) {
perror("sem_open error");
exit(EXIT_FAILURE);
}
printf("semaphore created\n");
sem_close(sem); // 关闭信号量
sem_unlink("/mysem"); // 删除信号量
return 0;
}
```
2. sem_init的使用示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>
int main(){
sem_t sem;
if (sem_init(&sem, 0, 1) == -1) { // 初始化一个信号量,初值为1
perror("sem_init error");
exit(EXIT_FAILURE);
}
printf("semaphore initialized\n");
sem_destroy(&sem); // 销毁信号量
return 0;
}
```
阅读全文