6.7 登录会计
大多数U N I X系统都提供下列两个数据文件: u t m p文件,它记录当前登录进系统的各个用
户;w t m p文件,它跟踪各个登录和注销事件。
在V 7中,包含下列结构的一个二进制记录写入这两个文件中:
struct utmp {
char ut_line[8]; /* tty line: "ttyh0", "ttyd0", "ttyp0", ... */
char ut_name[8]; /* login name */
long ut_time; /* seconds since Epoch */
} ;
登录时, l o g i n程序填写这样一个结构,然后将其写入到 u t m p文件中,同时也将其添写到 w t m p
文件中。注销时, i n i t进程将u t m p文件中相应的记录擦除 (每个字节都填以0 ),并将一个新记录
添写到w t m p文件中。读w t m p文件中的该注销记录,其u t _ n a m e字段清除为0。在系统再启动时,
以及更改系统时间和日期的前后,都在 w t m p文件中添写特殊的记录项。 w h o ( 1 )程序读u t m p文
件,并以可读格式打印其内容。后来的 U N I X版本提供 l a s t ( 1 )命令,它读w t m p文件并打印所选
择的记录。
大多数U N I X版本仍提供u t m p和w t m p文件,但其中的信息量却增加了。V 7中2 0字节的结构
在S V R 2中已扩充为3 6字节,而在S V R 4中,u t m p结构已扩充为3 5 0字节。
S V R 4中这些记录的详细格式请参见手册页 u t m p ( 4 )和u t m p x ( 4 )。S V R 4中这两
个文件都在目录 / v a r / a d m中。S V R 4提供了很多函数 (见g e t u t ( 3 )和g e t u t x ( 3 ) )读或写
这两个文件。
4 . 3 + B S D中登录记录的格式请参见手册页 u t m p ( 5 )。这两个文件的路径名是
/ v a r / r u n / u t m p和/ v a r / l o g / w t m p。
6.8 系统标识
P O S I X . 1定义了u n a m e函数,它返回与主机和操作系统有关的信息。
#include
int uname(struct utsname *n a m e) ;
返回:若成功则为非负值,若出错则为- 1
1 1 6 U N I X环境高级编程
下载
1