信号灯也叫信号量,是不同进程间或一个给定进程内部不同线程间同步的机制。
信号灯集为信号量的集合,实现同步、互斥机制,配合共享内存使用,解决资源竞争问题。
函数:semget、semctl、semop
实现流程:
1、创建信号灯集的IPC对象 semget
2、信号灯集初始化 semctl
3、创建共享内存IPC对象 shmget
4、内存映射 shmat
5、PV操作 semop
6、撤销映射 shmdt
7、删除共享内存IPC对象 shmctl
8、删除信号灯集IPC对象 semctl
write.c
/*===============================================
* 文件名称:write.c
* 创 建 者:cxy
* 创建日期:2024年02月08日
* 描 述:
================================================*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <string.h>
/*
struct sembuf{ //保存信号灯信息的结构体
unsigned short sem_num; //控制的信号灯编号
short sem_op; //-1为P操作,1为V操作
short sem_flg; //0为默认操作方式
};
*/
int main(int argc, char *argv[])
{
//1、创建信号灯集IPC对象semget
//1.1、获取key值ftok
key_t key = ftok("/home",44); //非0数

最低0.47元/天 解锁文章
235

被折叠的 条评论
为什么被折叠?



