標準
標準/拡張機能 |
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 に対応するプロセス・グループが存在しません。