liunx c获取文件的信息

获取文件的信息

作用:类似于liunx 中ls- lh命令

举例:获取文件创建的时间

获取文件的时间要是用struct stat 结构体

使用struct stat 结构体需要引入<sys/types.h><sys/stat.h>两个头文件

struct stat 结构体介绍:

struct stat {

    mode_t     st_mode;       //文件对应的模式,文件,目录等

    ino_t      st_ino;       //inode节点号

    dev_t      st_dev;        //设备号码

    dev_t      st_rdev;       //特殊设备号码

    nlink_t    st_nlink;      //文件的连接数

    uid_t      st_uid;        //文件所有者

    gid_t      st_gid;        //文件所有者对应的组

    off_t      st_size;       //普通文件,对应的文件字节数

    time_t     st_atime;      //文件最后被访问的时间

    time_t     st_mtime;      //文件内容最后被修改的时间

    time_t     st_ctime;      //文件状态改变时间

    blksize_t st_blksize;    //文件内容对应的块大小

    blkcnt_t   st_blocks;     //伟建内容对应的块数量

  }; 

使用stat可以获取 struct stat 结构体的地址

int stat(const char *path, struct stat *struct_stat); 成功返回0。

用法:
struct stat test;
stat(“文件路径”,&test);

配合时间操作中的 struct tm * sttm使用
sttm = localtime(&test.stctime);

struct tm

   {

          int tm_sec;    秒 

          int tm_min;    取值区间为[0,59]  

          int tm_hour;   时 - 取值区间为[0,23] */

          int tm_mday;  一个月中的日期 - 取值区间为[1,31] 

          int tm_mon;   月份(从一月开始,0代表一月) - 取值区间为[0,11]

          int tm_year;   年份,其值等于实际年份减去1900

          int tm_wday;  星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推

          int tm_yday;   从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 
          int tm_isdst;   夏令时标识符,该字段意义不大,我们不用夏令时。

   };

然后配合struct tm结构体中的参数就可以输出了
printf("%04u-%02u-%02u %02u:%02u:%02u\n",test->tm_year+1900,test->tm_mon+1,test->tm_mday,test->tm_hour,test->tm_min,test->tm_sec);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值