2016-01-29
stat fstat lstat函数
int stat(const char * pathname, struct stat * buf);
int fstat(int filedes, struct stat * buf);
int lstat(const char * pathname, struct stat *buf);
stat函数返回文件的信息结构,lstat类似stat,但当命名的文件是一个符号链接时,lstat返回的是改符号连接有关信息。
第二个参数是个指针,它指向一个我们应提供的结构。
文件类型
系统中所有设备或者是字符特殊设备或者是块特殊文件
普通文件 目录 字符特殊文件(这种文件用于系统中某些类型的设备)块特殊文件(这种文件典型地英语磁盘设备)
FIFO(这种文件用于进程间通信,有时候也称为命名管道) Socket(这种文件用于进程间的网络通信,也可用于在一台宿主机上的进程间的非网络通信)符号链接(这种文件指向另一个文件)
文件类型信息包含在stat结构的st_mode成员中,可以用<sys/stat.h>中定义的宏(如S_ISREG)判断文件类型
设置用户ID和设置组ID
与一个进程相关联的ID有
实际用户ID和实际组ID:标识了我们究竟是谁。这两个字段在登录时取自口令文件中的登录项,通常在一个登录会话期间这些值并不会改变。
有效用户ID有效组ID:决定了我们的文件访问权限
保存的设置用户ID和组ID:在执行一个程序时包含了有效用户ID和有效组ID的副本。
通常有效用户ID等于实际用户ID,有效组ID等于实际组ID。每个文件有一个所有者和组所有者,所有者由stat结构中的st_uid表示,组所有者由st_gid成员表示