kill函数,raise函数,alarm函数,pause函数

1. kill函数将信号发送给进程或者进程组。
int kill(pid_t pid,int signo);
? pid > 0 将信号发送给进程ID为pid的进程。
? pid == 0 将信号发送给其进程组ID等于发送进程的进程组ID,而且发送进程有许可权向
其发送信号的所有进程。
这里用的术语“所有进程”不包括实现定义的系统进程集。对于大多数UNIX系统,系统
进程集包括:交换进程(pid 0),init(pid 1)以及页精灵进程(pid 2)。
? pid < 0 将信号发送给其进程组ID等于pid绝对值,而且发送进程有许可权向其发送信号
的所有进程。如上所述一样,“所有进程”并不包括系统进程集中的进程。
? pid == -1 POSIX.1未定义此种情况。
不过上面的发送是有权限的,比如root就可以发送给任何一个进程或进程组,而非特权用户基本规则是发送者的实际或有效用户ID必须等于接收者的实际或有效用户ID。
一个特例:如果被发送的信号是SIGCONT,则进程可将它发送给属于同一对话期的任一其他进程。
如果signo参数是0,则kill仍执行正常的错误检查,但不发送信号。这常被用来确定一个特定进程是否仍旧存在。

2. raise函数则允许进程向自身发送信号。
int raise(int signo);
raise(signo)等价于kill(getpid(),signo);
 
3. alarm函数可以设置一个计时器,计时器超时时,产生SIGALRM信号。
unsigned int alarm(unsigned int seconds);
每个进程只能有一个闹钟时钟。

4. pause函数使调用进程挂起直至捕捉到一个信号。
int pause(void);
只有执行了一个信号处理程序并从其返回时,pause才返回。在这种情况下,pause返回-1,并将errno设置为EINTR。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值