Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 1.26 KB

10.5.md

File metadata and controls

52 lines (40 loc) · 1.26 KB

10.5 读取文件元数据

stat和fstat函数

程序可以通过stat和fstat函数,查看文件的信息,它们的定义如下:

#include <unistd.h>
#include <sys/stat.h>
//传入一个stat结构体
int stat(const char *filename, struct stat *buf)
int fstat(int fd, struct stat *buf)

关于stat结构体

unlink中我有介绍,这里介绍一下st_mode

st_mode是用来确定文件的类型,具体如下:

宏指令 描述
S_ISREG() 普通文件
S_ISDIR() 目录文件
S_ISSOCK() 套接字

例子:

#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
int main(int argc,char **argv)
{
    struct stat stat;
    char *type,*readok;
    Stat(argv[1],&stat); //包裹函数
    if(S_ISREG(stat.st_mode))
        type = "reg";
    else if(S_ISDIR(stat.st_mode))
        type = "dir";
    else 
        type = "other";
    if(stat.st_mode & S_IRUSR)
        readok = "yes";
    else
        readok = "no";
    printf("type:%s,read: %s\n",type,readok);
    return 0;
}

问题

怎么任意修改Linux文件的最后访问时间?