Linux下C语言编程——信号处理
来源:互联网 发布:php正则表达式验证邮箱 编辑:程序博客网 时间:2024/06/06 03:09
1.信号产生
Linux下C语言编程——消息管理
1.POSIX无名信号量(Linux只实现了无名信号量)
#include<semaphore.h>int sem_init(sem_t *sem,int pshared,unsigned int value);//创建一个信号灯,并初始化其值为value。pshared决定了信号能够在几个进程间的共享,由于目前Linux还没有实现进程间共享信号灯,所以这个值只能取0int sem_destroy(sem_t *sem);//用来删除信号灯int sem_wait(sem_t *sem);//调用将阻塞进程,直到信号灯值>0,这个函数返回的时候自动将信号灯的值减一。int sem_trywait(sem_t *sem);//和sem_wait相同,但不阻塞,当信号灯的值为0的时候返回EAGAIN,表示以后重试int sem_post(sem_t *sem);//和sem_wait相反,将信号灯内同+1同时发出信号唤醒等待的进程.int sem_getvalue(sem_t *sem);//得到信号灯的值
2.System V信号量
#include<sys/types.h>#include<sys/ipc.h>#include<sys/wem.h>struct sembuf{short sem_num;//使用哪一个信号short sem_op;//进行什么操作short sem_flg;//操作的标志}key_t ftok(char *pathname,char proj);//根据pathname和proj来创建一个关键字int semget(key_t key,int nsems,int semflg);//创建一个信号量,成功返回信号ID,key是一个关键字,,可以是用ftok创建的也可以使IPC_PRIVATE表明由系统选用一个关键字,nsems表明我们创建的信号的个数.semflg是创建的权限标志,和我们创建一个文件的标志相同。int semctl(int semid,int semnum,int cmd,union semun arg);//对信号量进行一系列控制,semid是要操作的信号标志,semnum是信号的个数,cmd是操作的命令,经常用到的两个值是SETVAL(设置信号量的值)和IPC_RMID(删除信号灯),arg是一个给cmd的参数。int semop(int semid,struct sembuf *spos,int nspos);//对信号进行操作的函数,spos是一个操作数组表明要进行什么操作,nspos表明数组的个数,如果sem_op>0,那么操作将sem_op加入信号量的值中并唤醒等待信号增加的进程,如果sem_op=0,当信号量的值是0的时候,函数返回,否则阻塞直到信号量的值为0,如果小于0,函数判断信号量的值加上这个负值,如果结果为0则唤醒等待信号量为0的进程,如果小于0函数阻塞,如果大于0,那么从信号靓丽减去这个值并返回。
- Linux下C语言编程——信号处理
- Linux下C语言编程--信号处理函数
- linux操作系统下c语言编程入门 -- (5)信号处理
- linux操作系统下c语言编程入门--信号处理
- Linux下C语言编程--信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下C语言编程 -- 信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下C语言编程--信号处理函数
- Linux下的C语言编程——信号队列
- zzlinux操作系统下c语言编程入门--信号处理
- linux下的C语言开发(信号处理)
- linux下的C语言开发(信号处理)
- linux下的C语言开发(信号处理)
- matlab与vc混编1
- OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例)
- 常见设计模式的解析和实现(C++)之十六-Strategy模式
- javascript中的时间操作
- Android Gallery图片比例自适应
- Linux下C语言编程——信号处理
- 学习中提高or实践中提高
- 大家帮我看看这是怎么回事 8个节点 其中有一个HRegionServer 没有跑起来
- hibernate更新报错 java.util.ConcurrentModificationException
- Win7设好IIS,访问网站时遇到的一系列错误 “ 403.14---404.7---404.3”
- 大端、小端问题详解
- 第二章 信息化 规划与组织
- js获取节点 dom操作
- 常见设计模式的解析和实现(C++)之十七-State模式