whoを書く(macbook)
macだと
- utmpではなくてutmpxを
- 時刻がut_tv.tv_sec
あと以下の関数のcp+4は先頭の文字列4つを落としている。
void show_time(long timeval){
char *cp;
cp = ctime(&timeval);
printf("%12.12s", cp+4);
}
作ったwho2は月の表記がオリジナルとちょっと違うけどまぁいいか。
$ ./who2
kzfm console Sep 27 17:31
kzfm ttys000 Sep 27 17:32
kzfm ttys001 Sep 27 18:50
kzfm ttys002 Sep 27 18:50
$ who
kzfm console 9 27 17:31
kzfm ttys000 9 27 17:32
kzfm ttys001 9 27 18:50
kzfm ttys002 9 27 18:50
pythonからutmpx(utmp)ファイルにアクセスするにはpyutmpってのがあってCythonで書かれている。
他にもunagi.pyをみるとstructモジュールを使ってアクセスできるようだ。
Unix/Linuxプログラミング理論と実践
実用SSH 第2版―セキュアシェル徹底活用ガイド
LPI試験 レベル1 標準教科書 (なるほどナットク!)
インターフェイスの街角―本当に使いやすいユーザー・インターフェイスの極意 (UNIX MAGAZINE COLLECTION)
詳解 Linuxカーネル 第3版
Linuxカーネル2.6解読室