kill関数は,
main関数を含んでいる C および C++ プログラムでのみ使用できます。
kill関数は,プロセスが
raiseを呼び出したときと同じように,プロセスに対してシグナルを送信します。シグナルが
ターゲット・プログラムによってトラップまたは無視されなかった場合,そのプログラムは実行を終了します。
OpenVMS VAX および Alpha は,シグナルの送信先として指定できるプロセスに関して,異なる規則を実装しています。プログラムは,
vfork/
execによって起動された子プロセスには,つねにシグナルを送信する権限を持っています。その他のプロセスでの結果は,システムの OpenVMS セキュリティ・モデルによって決定されます。
OpenVMS の制約のために,
kill関数は,特権付きでインストールされたイメージを実行するターゲット・プロセスにシグナルを配信することはできません。
システム特権がない限り,送信側と受信側のプロセスは,同じ利用者識別コード (UIC) を持っている必要があります。
V7.0 より前の OpenVMS システムでは,
killはシグナル値 0 を, SIGKILL が指定された場合と同じように扱います。
OpenVMS Version 7.0 およびそれ以降のシステムでは,
<stdlib.h>をインクルードし, _POSIX_EXIT 機能テスト・マクロを設定してコンパイルすると,次のようになります。
- シグナル値が 0 ならば,
killはプロセス ID を確認するが,シグナルを送信しない。
- プロセス ID が有効でなければ,
killは - 1 を返し,
errnoを ESRCH に設定する。