Liunx编程之信号signal

来源:互联网 发布:网络写作集剧本编写 编辑:程序博客网 时间:2024/05/29 14:04

kill函数

函数原型:

int   kill(pid_t pid,  int signo  )

pid>0:向进程pid发送signo信号

pid == 0: 。。。。。。。。。。。

pid  < 0 : 向进程组ID为pid绝对值的进程发送signo信号

pid == -1:。。。。。。。。。。。。


sigprocmask函数

函数原型:

int  sigprocmask(int   how,  const     sigset_t *    set,    sigset_t*   oset    )

描述:根据how取值不同,设置进程的屏蔽位。设置屏蔽位后,相应的信号将被阻塞,不再执行相应的信号处理函数直到信号屏蔽位被撤销。

how的取值:

SIG_BLOCK:设置相应屏蔽位

SIG_UNBLOCK: 取消相应屏蔽位

SIG_SETMASK:  用set替换原屏蔽字

原先的屏蔽字将保存于oset中(若oset非空)。


sigpending函数

函数原型:

int  sigpending( sigset_t*    set )

函数描述:被阻塞的信号集(包含了所有为递交的信号)

结果存于set中


sigaction函数

signal函数的替代品


sigsetjmp与siglongjmp

int sigsetjmp(sigjmp_buf  env,   int   savemask)

int  siglongjmp(sigjmp_buf   env,    int   val)


sigsuspend函数

函数原型:

int  sigsuspend( const   sigset_t*   sigmask)

函数描述:用一个原子操作将进程屏蔽字设置为sigmask并挂起进程


0 0