killpg() - Unix,Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

killpg() - Unix,Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

killpg - 向进程组发送信号

语法

#include <signal.h>

int killpg(int pgrp, int sig);

描述

killpg() 将信号 sig 发送到进程组 pgrp。有关信号列表,请参阅 signal(7)。如果 pgrp 为 0,则 killpg() 将信号发送到发送进程的进程组。

(POSIX 规定:如果 pgrp 小于或等于 1,则行为未定义。)

要使进程有权发送信号,它必须要么是特权的(在 Linux 中:具有 CAP_KILL 功能),要么发送进程的真实或有效用户 ID 必须等于目标进程的真实或已保存的 set-user-ID。对于 SIGCONT,当发送和接收进程属于同一个会话时就足够了。

返回值

成功时,返回零。失败时,返回 -1,并且 errno 被相应地设置。

错误

标签描述
EINVAL Sig 不是有效的信号编号。
EPERM 进程无权向任何目标进程发送信号。
ESRCH pgrp 指定的进程组中找不到任何进程。
ESRCH 进程组被指定为 0,但发送进程没有进程组。

备注

BSD 类型系统和 System V 类型系统之间的权限检查存在各种差异。有关 kill(),请参阅 POSIX 论证。POSIX 未提及的一个差异涉及返回值 EPERM:BSD 文档说明当对至少一个目标进程的权限检查失败时,不发送任何信号并返回 EPERM,而 POSIX 文档仅在对所有目标进程的权限检查失败时才返回 EPERM。

符合标准

SVr4、4.4BSD(killpg() 函数调用首次出现在 4BSD 中)、POSIX.1-2001。

参见



previous next Printer Friendly

广告


  

广告



广告