| 総合手引 | セクション 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.
| “ | The most horrifying thing about Unix is that, no matter how many times you hit yourself over the head with it, you never quite manage to lose consciousness. It just goes on and on. | ” |
| — Patrick Sobalvarro | ||