総合手引 | セクション 3 | English | オプション |
#include <kvm.h>
#include <sys/param.h>
#include <sys/sysctl.h>
KERN_PROC_ALL | |
すべてのプロセス | |
KERN_PROC_PID | |
プロセス ID arg を持つプロセス | |
KERN_PROC_PGRP | |
プロセスグループ arg を持つプロセス | |
KERN_PROC_SESSION | |
セッション arg を持つプロセス | |
KERN_PROC_TTY | |
tty arg を持つプロセス | |
KERN_PROC_UID | |
実効ユーザ ID arg を持つプロセス | |
KERN_PROC_RUID | |
実ユーザ ID arg を持つプロセス | |
見つけたプロセス数は参照パラメータ cnt で返されます。 プロセスは kinfo_proc 構造体の連続配列として返されます。 このメモリは局所的に割り当てられ、 kvm_getprocs() と kvm_close() に引き続く呼び出しはこの記憶域に上書きします。
kvm_getargv() はヌルで終了する引数ベクタを返します。 このベクタは p が示すプロセスに渡されたコマンドライン引数に対応します。 おそらく、これらの引数はプロセス生成時の exec(3) に渡された値に相当します。 しかしながら、この情報は、 故意にプロセス自身のコントロール下にあります。 オリジナルのコマンド名は、 kvm_getprocs() によって返されたプロセス構造体の p_comm フィールドに、 変更されていない状態で見つけることができます。
nchr 引数はヌルバイトを含めた最大の文字数を示し、 文字列の構築に使います。 もしもこの量を超えてしまえば、 オーバフローの原因となる文字列は切り捨てられ、 結果が部分的に返されます。これは ps(1) や w(1) のようなプログラムにとっては簡便な方法です。 これらのプログラムにおいては、 コマンドの 1 行要約のみを印字しますので、 無視するためのみに多量のテキストを複写すべきではありません。 nchr が 0 ならば、なんら制限は課されませんし、 すべての引数の文字列はそっくりそのまま返されます。
argv ポインタと文字列記憶域に割り当てられたメモリは、 kvm ライブラリによって所有されます。引き続く kvm_getprocs() と kvm_close(3) 呼び出しはこの記憶域を容赦なく使います。
kvm_getenvv() 関数は kvm_getargv() に類似していますが、環境文字列のベクタを返します。 このデータはまたプロセスにより変更可能です。
KVM_GETPROCS (3) | June 4, 1993 |
総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | I define UNIX as “30 definitions of regular expressions living under one roof.” | ” |
— Donald Knuth |