/var/run/utmp文件操作函数
相關(guān)函數(shù):getutent, getutid, getutline, setutent, endutent, pututline, utmpname
utmp 結(jié)構(gòu)定義如下:
struct utmp
{
? ? short int ut_type; //登錄類型
? ? pid_t ut_pid; //login 進(jìn)程的pid
? ? char ut_line[UT_LINESIZE]; //登錄裝置名, 省略了"/dev/"
? ? char ut_id[4]; //Inittab ID
? ? char ut_user[UT_NAMESIZE]; //登錄賬號
? ? char ut_host[UT_HOSTSIZE]; //登錄賬號的遠(yuǎn)程主機(jī)名稱
? ? struxt exit_status ut_exit; //當(dāng)類型為DEAD_PROCESS 時進(jìn)程的結(jié)束狀態(tài)
? ? long int ut_session; //Sessioc ID
? ? struct timeval ut_tv; //時間記錄
? ? int32_t ut_addr_v6[4]; //遠(yuǎn)程主機(jī)的網(wǎng)絡(luò)地址
? ? char __unused[20]; //保留未使用
};
ut_type 有以下幾種類型:
EMPTY:此為空的記錄.
RUN_LVL:記錄系統(tǒng)run-level 的改變
BOOT_TIME:記錄系統(tǒng)開機(jī)時間
NEW_TIME:記錄系統(tǒng)時間改變后的時間
OLD_TINE:記錄當(dāng)改變系統(tǒng)時間時的時間.
INIT_PROCESS:記錄一個由init 衍生出來的進(jìn)程.
LOGIN_PROCESS:記錄 login 進(jìn)程.
USER_PROCESS:記錄一般進(jìn)程.
DEAD_PROCESS:記錄一結(jié)束的進(jìn)程.
ACCOUNTING:目前尚未使用.
exit_status 結(jié)構(gòu)定義:
struct exit_status
{
? ? short int e_termination; //進(jìn)程結(jié)束狀態(tài)
? ? short int e_exit; //進(jìn)程退出狀態(tài)
};
timeval 的結(jié)構(gòu)定義請參考gettimeofday()。
相關(guān)常數(shù)定義如下:
UT_LINESIZE 32
UT_NAMESIZE 32
UT_HOSTSIZE 256
?
?
范例
#include <utmp.h>
main()
{
? ? struct utmp *u;
? ? while((u = getutent()))
? ? {
? ? ? ? if(u->ut_type == USER_PROCESS)
? ? ? ? ? ? printf("%d %s %s %s \n", u->ut_type, u->ut_user, u->ut_line, u->ut_host);
? ? }
? ? endutent();
}
轉(zhuǎn)載于:https://www.cnblogs.com/wangliangblog/p/8533788.html
總結(jié)
以上是生活随笔為你收集整理的/var/run/utmp文件操作函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个绿色个性签名!
- 下一篇: 决策树模型与学习《一》