信号量函数 :semget semop semct 分析
来源:互联网 发布:网络用语pt是什么意思 编辑:程序博客网 时间:2024/05/17 01:33
1. semget函数
1>函数功能:得到一个信号量集标识符或创建一个信号量集对象;
2>函数原型:int semget(key_t key, int nsems, int semflg);
3>函数返回值:成功时:返回值为信号量集的标识符 失败时:返回值为-1
4>参数:(1)key:0(IPC_PRIVATE)建立新信号量集对象;
大于0的32位整数:视参数semflg来确定操作,通常要求此值来源于ftok返回的IPC键值
(2)nsems:创建信号量集中信号量的个数,该参数只在创建信号量集时有效
(3)msgflg:0:取信号量集标识符,若不存在则函数会报错
IPC_CREAT:当semflg&IPC_CREAT为真时,如果内核中不存在键值与key相等的信号量集,则 新建一个信号量集;如果存在这样的信号量集,返回信号量集的标识符
IPC_CREAT|IPC_EXCL:如果内核中 不存在键值与key相等的信号量集,则新建一个消息队列; 如果存在这样的信号量集则报错
5>所需头文件:#include<sys/types.h> #include<sys/ipc.h> #include<sys/sem.h>
2. semop函数
1>函数功能:对信号量集标识符为semid中的一个或多个信号量进行P操作或V操作
2>函数原型:int semop(int semid,struct sembuf *sops,unsigned nsops);
3>函数返回值:成功:返回信号量集的标识符 失败:返回-1 错误原因存于error中
4>参数:(1)semid:信号量集标识符
(2)sops:指向进行操作的信号量集结构体数组的首地址
(3)nsops:进行操作信号量的个数,即sops结构变量的个数,需大于或等于1
5>所需头文件:#include<sys/types.h> #include<sys/ipc.h> #include<sys/sem.h>
3. semctl函数
1>函数功能:得到一个信号量集标识或创建一个信号量集对象
2>函数原型:int semctl(int semid, int semnum, int cmd, union semun arg)
3>函数返回值:成功:大于或等于0 失败: -1 错误原因存于error中
4>参数:(1)semid:信号量集标识符
(2)semnum:信号量集数组下标,表示某一个信号量
(3)cmd:各种命令
(4)arg:union semun {
short val; /*SETVAL用的值*/
struct semid_ds* buf; /*IPC_STAT、IPC_SET用的semid_ds结构*/
unsigned short* array; /*SETALL、GETALL用的数组值*/
struct seminfo *buf; /*为控制IPC_INFO提供的缓存*/
} arg
short val; /*SETVAL用的值*/
struct semid_ds* buf; /*IPC_STAT、IPC_SET用的semid_ds结构*/
unsigned short* array; /*SETALL、GETALL用的数组值*/
struct seminfo *buf; /*为控制IPC_INFO提供的缓存*/
} arg
5)所需头文件:#include<sys/types.h> #include<sys/ipc.h> #include<sys/sem.h>
阅读全文
0 0
- 信号量函数 :semget semop semct 分析
- 信号量函数 semget() semop() semctl()
- 信号量函数 semget() semop() semctl()
- 信号量函数 semget() semop() semctl()
- 信号量函数 semget() semop() semctl()
- 信号量函数 semget() semop() semctl()
- 信号量函数 semget() semop() semctl()
- 信号量函数 semget() semop() semctl()
- 信号量函数(semget、semop)
- 信号量函数 semget() semop() semctl() 说明
- 信号量 Linux函数 semget();semctl();semop();
- 信号量 Linux函数 semget();semctl();semop();
- 信号量函数(semget、semop、semctl)
- 信号量函数(semget、semop、semctl)
- 信号量 Linux函数 semget();semctl();semop();
- 信号量 Linux函数 semget();semctl();semop();
- 信号量函数(semget、semop、semctl)及其范例
- linux下c编程之信号量semget,semop,semctl函数
- 请求数据—HttpClient
- spark相关概念
- 字节转换字符
- leetcode004-Letter Combinations of a Phone Number
- 汇编(二)
- 信号量函数 :semget semop semct 分析
- 稀疏自编码器 栈式自编码器 深度学习预训练
- web前端_原生js_全选功能
- 自定义控件_View----实现点击更换随机数
- 用Construct 2制作游戏时的图层和人物设置
- 【笔试】不能用来修饰Interface的有( )
- 单链表的基本操作及其应用(实验2.1)
- php-fpm参数优化【适用于1G内存的VPS】
- Maven入门指南⑤:使用Nexus搭建Maven私服