#include
#include
#include
#include
int main()
{
}
/var/run/utmp -- database of currently logged-in users
/var/log/wtmp -- database of past user logins
(utmp文件中保存的是当前正在本系统中的用户的信息。wtmp文件中保存的是登录过本系统的用户的信息)
它们保存的信息是基于下面的结构体struct utmp的(/usr/include/bits/utmp.h):
struct exit_status
{
};
struct utmp
{
#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
#else
#endif
};
#define EMPTY
#define RUN_LVL
#define BOOT_TIME
#define NEW_TIME
#define OLD_TIME
#define INIT_PROCESS
#define LOGIN_PROCESS
#define USER_PROCESS
#define DEAD_PROCESS
#define ACCOUNTING
而读取和修改这些文件的函数如下:
#include
struct utmp *getutent(void);
struct utmp *getutid(struct utmp *ut);
struct utmp *getutline(struct utmp *ut);
struct utmp *pututline(struct utmp *ut);
void setutent(void);// 函数打开文件utmp,并且将文件指针指向文件的最开始
void endutent(void);// 函数关闭文件utmp
int utmpname(const char *file);
utmpname()函数设定utmp文件所在的路径,默认的路径为宏 _PATH_UTMP,该宏定义在/usr/include/paths.h中:
#define _PATH_UTMP "/var/run/utmp"
pututline()