天天看点

通过stat和fstat取得文件信息

/*

* Linux文件属性结构体信息

* struct stat

* {

* dev_t st_dev;//设备

* ino_t st_ino;//结点

* mode_t st_mode;//模式

* nlink_t st_nlink;//硬连接

* uid_t st_uid;//用户ID

* gid_t st_gid;//组ID

* dev_t st_rdev;//设备类型

* off_t st_off;//文件字节数

* unsigned long st_blksize;//块大小

* unsigned long st_blocks;//块数

* time_t st_atime;//最后一次访问时间

* time_t st_mtime;//最后一次修改时间

* time_t st_ctime;//最后一次属性改变时间

* }

* 可通过stat或fstat函数获得文件的其他属性

* stat函数用来判断没有打开的文件,而fstat函数用来判断打开的文件。

*

*/

#include <unistd.h>

#include <sys/stat.h>

int main(void)

{

struct stat buf;

stat("/etc/passwd",&buf);

/*

* stat函数

* 取得文件的属性

* sys/stat.h,unistd.h

* int stat(const char *file_name,struct stat*buf);

* 将参数file_name所指的文件状态复制到参数buf所指的结构中

* 成功返回0,失败返回-1,错误存储于errno

*/

printf("/etc/passwd文件的大小是:%d/n",buf.st_size);

printf("/etc/passwd文件的最后一次修改时间是:%d/n",buf.st_ctim);

return 0;

}

继续阅读