Linux学习笔记(06-15)信号集的使用
2015-06-15 14:36
357 查看
信号集(signal set)
POSIX.1定义数据类型sigset_t以包含一个信号集,并且定义了下列5个处理信号集的函数。
#include <signal.h>
int sigemptyset(sigset_t * set);
int sigfillset(sigset_t * set);
int sigaddset(sigset_t * set, int signo);
int sigdelset(sigset_t * set, int signo);
int sigismember(const sigset_t * set, int signo);
sigemptyset函数将整型设置为0.
sigfillset函数将整型中各位设置为1.
int sigprocmask(int how, const sigset_t * restrict set, sigset_t * restrict oset);
参数how只是如何修改当前信号屏蔽字。SIG_BLOCK、SIG_UNBLOCK、SIG_SETMASK
SIG_SETMASK将信号屏蔽字恢复为先前的值。
函数sigpending返回一信号集。
int sigpending(sigset_t * set);
函数sigaction检查或修改与制定信号相关联的处理动作。
int sigaction(int signo, const struct sigaction * restrict act, struct sigaction *restrict oact);
函数sigsetjmp和siglongjmp
当捕捉到一个信号时,进入信号捕捉函数,此时当前信号被自动地加到进程的信号屏蔽字中,这阻止了后来产生的这种信号中断该信号处理程序。
int sigsetjmp(sigjmp_buf env, int savemask);
void siglongjmp(sigjmp_buf env, int val);
如果savemask非0,则sigsetjmp在env中保存进程的当前信号屏蔽字。调用siglongjmp时,如果带非0 savemask的sigsetjmp调用已经保存了env,则siglongjmp从其中恢复保存的信号屏蔽字。
函数sigsuspend
(如果在解除阻塞和pause之间发生了信号)在一个原子操作中先恢复信号屏蔽字,然后使进程休眠。
int sigsuspend(const sigset_t * sigmask);
在捕捉到一个信号或发生了一个会终止该进程的信号之前,该进程被挂起。
如果它返回到调用者,则总是返回-1.
abort函数的功能是使程序异常终止。
POSIX.1要求system忽略SIGINT和SIGQUIT,阻塞SIGCHLD。
POSIX.1定义数据类型sigset_t以包含一个信号集,并且定义了下列5个处理信号集的函数。
#include <signal.h>
int sigemptyset(sigset_t * set);
int sigfillset(sigset_t * set);
int sigaddset(sigset_t * set, int signo);
int sigdelset(sigset_t * set, int signo);
int sigismember(const sigset_t * set, int signo);
sigemptyset函数将整型设置为0.
sigfillset函数将整型中各位设置为1.
int sigprocmask(int how, const sigset_t * restrict set, sigset_t * restrict oset);
参数how只是如何修改当前信号屏蔽字。SIG_BLOCK、SIG_UNBLOCK、SIG_SETMASK
SIG_SETMASK将信号屏蔽字恢复为先前的值。
函数sigpending返回一信号集。
int sigpending(sigset_t * set);
函数sigaction检查或修改与制定信号相关联的处理动作。
int sigaction(int signo, const struct sigaction * restrict act, struct sigaction *restrict oact);
函数sigsetjmp和siglongjmp
当捕捉到一个信号时,进入信号捕捉函数,此时当前信号被自动地加到进程的信号屏蔽字中,这阻止了后来产生的这种信号中断该信号处理程序。
int sigsetjmp(sigjmp_buf env, int savemask);
void siglongjmp(sigjmp_buf env, int val);
如果savemask非0,则sigsetjmp在env中保存进程的当前信号屏蔽字。调用siglongjmp时,如果带非0 savemask的sigsetjmp调用已经保存了env,则siglongjmp从其中恢复保存的信号屏蔽字。
函数sigsuspend
(如果在解除阻塞和pause之间发生了信号)在一个原子操作中先恢复信号屏蔽字,然后使进程休眠。
int sigsuspend(const sigset_t * sigmask);
在捕捉到一个信号或发生了一个会终止该进程的信号之前,该进程被挂起。
如果它返回到调用者,则总是返回-1.
abort函数的功能是使程序异常终止。
POSIX.1要求system忽略SIGINT和SIGQUIT,阻塞SIGCHLD。
相关文章推荐
- Linux下使用Sigar 获取磁盘信息
- Linux下设置静态IP和获取动态IP的方法
- Linux 系统时间和硬件时间
- linux上限制用户进程数、cpu占用率、内存使用率
- CentOS 6.5配置SSH免密码登录
- linux-修改hostname
- Linux 性能监测:工具
- Linux 性能监测:IO
- Linux 性能监测:Memory
- 查看centos是多少位的系统命令
- Linux 性能监测:介绍
- Linux 性能监测:CPU
- Linux系统搭建Nagios监控平台
- Linux下Java安装与配置
- LINUX命令
- linux知识散记(1)-----64位的系统运行32位程序
- linux下 tar解压 gz解压 bz2等各种解压文件使用方法
- 自助Linux之问题诊断工具strace
- Linux(Ubuntu)下面SecureFX 完全破解
- Tiny6410学习笔记1——GPIO