文章目录
- 一、信号量的定义?
- 二、信号量的使用
- 三、ipcs的使用
一、信号量的定义?
信号量是一个特殊的变量,一般取正数值。它的值代表允许访问的资源数目,获取资源时,需要对信号的值进行原子减一,该操作被称为p操作。当信号量值为0时,代表没有资源可用,p操作会阻塞。释放资源时需要对信号量的值进行原子加一,该操作称为V操作。信号量主要用来同步进程。信号量如果只取0,1,将其称为二值信号量。如果信号量的值大于1,则称之为计数信号量。
二、信号量的使用
操作信号量的接口介绍:
semget() 创建或者获取已存在的信号量

semop() 对信号量进行改变P操作 ,或者V操作

semctl() 控制信号量

首先对函数进行封装
sem.h头文件

sem.c 进行函数实现
1、sem_init()函数

2、sem_p()函数

sem_v()函数

4.sem_destory函数

设置两个进程a.c 、b.c
1、a.c

2、b.c

运行结果
只能为:AABBAABBAABBAABBAABB
原因:AABBAABB只能成对的出现才能代表进程同步机制。
三、ipcs的使用
ipcs 查看消息队列,共享内存,信号量

ipcrm -s semid 删除信号量














![[内网渗透]—CS生成office宏钓鱼](https://img-blog.csdnimg.cn/b395816dc5254e5aaaefa81b16d590c3.png#pic_center)




