信号灯集详细使用说明

信号灯(semaphore),也叫信号量。它是不同进程间或一个给定进程内部不同线程间的同步的机制
信号灯种类:
posix有名信号灯。
posix基于内核的信号灯(无名信号灯)
System V信号灯(IPC对象)
System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。而posix信号灯指的是单个计数信号灯
可以通过命令
ipcs -a查看所有的IPC对象使用情况
ipcs -m 查看共享内存
ipcs -q 查看消息队列
ipcs -s 查看信号灯集
ipcrm -m shmid 删除shmid的共享内存
ipcrm -q msgid 删除消息队列
ipcrm -s semid 删除信号灯集
主要函数ftok,semget,semop,semctl
key_t ftok(const char *pathname, int proj_id);
参数:
pathname 指定的文件夹或者文件
proj_id 是子序号。
返回值:成功返回key值,失败返回:-1
ftok()函数会获取第一个参数(文件或目录)的属性信息,并把ftok()的第二个参数的后8位,st_dev的后两位,st_ino的后四位,构成了一个键值。
所以由于ftok()只取参数proj_id的后8位(0-255),所以调用ftok两次传入不同的值,生成的key值可能相同,我不是我们想要的,所以我们一般都传一个char类型的字符(如'a')。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值