当前位置:嗨网首页>书籍在线阅读

09-发送信号

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

10.3 发送信号

kill()系统调用,它是我们经常使用的kill工具的基础,kill()调用会从一个进程向另一个进程发送信号:

485.png 调用kill(),如果pid值大于0,通常是给pid代表的进程发送信号signo。

如果pid是0,会给调用进程的进程组中的每个进程发送signo信号。

如果pid是-1,signo会向每个调用进程有权限发送信号的进程发出信号,除了调用进程自身和init以外。我们将在下一小节讨论发送信号的权限管理。

如果pid小于-1,会给进程组-pid发送signo信号。

成功时,kill()会返回0。只要有一个信号发出,该调用就认为成功。失败时(没有信号被发送),调用会返回-1,并将errno值设置为下列值之一:

EINVAL

由signo指定的信号无效。

EPERM

调用进程没有权限向指定的进程发送信号。

ESRCH

由pid指定的进程或进程组不存在,或进程是僵尸进程。