日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

/var/run/utmp文件操作函数

發布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 /var/run/utmp文件操作函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相關函數:getutent, getutid, getutline, setutent, endutent, pututline, utmpname

utmp 結構定義如下:
struct utmp
{
? ? short int ut_type; //登錄類型
? ? pid_t ut_pid; //login 進程的pid
? ? char ut_line[UT_LINESIZE]; //登錄裝置名, 省略了"/dev/"
? ? char ut_id[4]; //Inittab ID
? ? char ut_user[UT_NAMESIZE]; //登錄賬號
? ? char ut_host[UT_HOSTSIZE]; //登錄賬號的遠程主機名稱
? ? struxt exit_status ut_exit; //當類型為DEAD_PROCESS 時進程的結束狀態
? ? long int ut_session; //Sessioc ID
? ? struct timeval ut_tv; //時間記錄
? ? int32_t ut_addr_v6[4]; //遠程主機的網絡地址
? ? char __unused[20]; //保留未使用
};

ut_type 有以下幾種類型:
EMPTY:此為空的記錄.
RUN_LVL:記錄系統run-level 的改變
BOOT_TIME:記錄系統開機時間
NEW_TIME:記錄系統時間改變后的時間
OLD_TINE:記錄當改變系統時間時的時間.
INIT_PROCESS:記錄一個由init 衍生出來的進程.
LOGIN_PROCESS:記錄 login 進程.
USER_PROCESS:記錄一般進程.
DEAD_PROCESS:記錄一結束的進程.
ACCOUNTING:目前尚未使用.

exit_status 結構定義:
struct exit_status
{
? ? short int e_termination; //進程結束狀態
? ? short int e_exit; //進程退出狀態
};

timeval 的結構定義請參考gettimeofday()。

相關常數定義如下:
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();
}

轉載于:https://www.cnblogs.com/wangliangblog/p/8533788.html

總結

以上是生活随笔為你收集整理的/var/run/utmp文件操作函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。