top のコマンド名表示

procps の top の COMMAND 列は c キーでコマンド名/コマンドライン表示を切り替えられる。(FreeBSD ではできない?)

取得元
コマンド名 vi /proc/PID/stat
コマンドライン vi memo /proc/PID/cmdline execve の第二引数と同じ
 9738 ao        18   0 18712 6700 4352 T  0.0  1.3   0:01.27 vi
 9738 ao        18   0 18712 6700 4352 T  0.0  1.3   0:01.30 vi memo

[/proc/9738:1]$ tracelink `which vi`
/usr/bin/vi ->
/etc/alternatives/vi ->
-rwxr-xr-x 1 root root 2061608 2007-12-02 20:06 /usr/local/bin/vim

[/proc/9738:1]$ ll exe
lrwxrwxrwx 1 ao ao 0 2008-02-28 00:20 exe -> /usr/local/bin/vim*

・情報取得
readproc(PT, ...)
→ PT->reader(PT,p)
→ simplereader

・表示
window_show // 全行表示
task_show // 1行表示

top.c, libproc-3.2.7.so
make top
export LD_LIBRARY_PATH=/path/to/libproc-3.2.7.soのディレクトリ


procファイルシステム調理法
http://web-old.turbolinux.co.jp/world/library/features/c_magazine/vol_03.html
ps を読む
http://www.dzeta.jp/~junjis/code_reading/index.php?ps%A4%F2%C6%C9%A4%E0