killpg() - プロセス・グループへのシグナル送信

標準

標準/拡張機能 C/C++ 依存項目

XPG4.2
Single UNIX Specification、バージョン 3

両方

POSIX(ON)

形式

#define _XOPEN_SOURCE_EXTENDED 1
#include <signal.h>

int killpg(pid_t pgrp, int sig);

機能説明

killpg() 関数は、プロセス・グループにシグナルを送信します。

プロセスは、送信側の実ユーザー ID または有効なユーザー ID が、意図される受信側の実ユーザー ID または有効なユーザー ID と一致する場合に、シグナルを送信する許可を持ちます。プロセスは、適切な権限を持っている場合にも、シグナルを送信することができます。_POSIX_SAVED_IDS が <unistd.h> 組み込みファイルで定義されている場合、意図される受信側の保管されている設定ユーザー ID が、有効なユーザー ID の代わりにチェックされます。

ユーザー ID にかかわらず、プロセスは、送信側と同じセッション (同じセッション ID) の メンバーであるプロセス・グループに対しては、いつでも SIGCONT シグナルを 送信できます。
pid_t pgrp;
呼び出し側がシグナルを送信したいプロセス・グループを指定します。
  • pgrp が 1 より大きい場合、killpg() は、プロセス・グループ ID が pgrp に等しく、送信側がシグナルを 送信する権限を持つプロセスに、シグナル sig を送信します。
  • pgrp が 1 か、または 1 未満の場合、killpg() は -1 を戻し、errno に EINVAL を設定します。
int sig;
pid によって指定されるプロセスに対して送信されるシグナルです (シグナルのリストは、表 1 を参照してください)。これはゼロ、または <signal.h> 組み込みファイルに定義されているシグナルの 1 つでなければなりません。sig がゼロの場合、killpg() はエラー・チェックを実行しますが、実際にシグナルは送信しません。pid 引数が正しいかどうかチェックするために、sig をゼロにすることができます。

この関数がサポートされるのは、POSIX プログラムだけです。

使用上の注意

この関数では、SIGTHSTOP および SIGTHCONT シグナルの使用はサポートされていません。

戻り値

正常に実行された場合、killpg() は、pgrp が指定するプロセス・グループ ID のいずれかに sig を送信する許可を持っている場合には、0 を戻します。

正常に実行されなかった場合、killpg() は -1 を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
EINVAL
sig の値が正しくないか、またはサポートされている シグナルの番号ではありません。あるいは、pgrp の値が 1 または 1 未満です。
EPERM
呼び出し側が、pgrp によって指定される どのプロセス・グループ ID に対してもシグナルを送信する許可を持っていません。
ESRCH
pgrp に対応するプロセス・グループが存在しません。

関連情報