open的O_CLOEXEC参数和fstat()函数

背景:open(filename.c_str(), O_RDONLY | O_CLOEXEC)

O_CLOEXEC : 置位FD_CLOEXEC常量。

FD_CLOEXEC:如果置位了这个标志,则在执行exec时关闭该描述符, 否则该描述符任打开。

 

fstat() 函数

stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。

 

里面的关键的问结构体:struct stat

这个结构体记录了文件描述符的相关信息。不同系统的实现可能不一样,现列举apue74页的相关内容:

 1 struct stat                                                                                                                                                   
 2 {
 3     mode_t    st_mode;  文件权限和文件类型信息 
 4     ino_t     st_ino;   与该文件关联的inode
 5     dev_t     st_dev;   保存文件的设备  设备号
 6     dev_t     st_rdev;  特殊文件的保存文件的设备号
 7     nlink_t   st_nlink; 该文件上硬连接的个数
 8     uid_t     st_uid;   文件拥有者的用户ID   文件属主的UID号
 9     gid_t     st_gid;   文件属主的GID号
10     off_t     st_size;  以字节为单位的文件长度, 此字段只对普通文件、目录文件和符号链接有意义
11     struct timespec    st_atime;    文件上一次被访问的时间
12     struct timespec    st_mtime;    文件的内容上一次被修改的时间
13     struct timespec    st_ctime;    文件的权限、属主、组或内容上一次被修改的时间
14     blksize_t          st_blksize;  
15     blkcnt_t          st_blocks;
16  
17 };

 

posted @ 2020-09-05 15:26  熊鑫xxx1x  阅读(764)  评论(0)    收藏  举报