程序可以通过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)
在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文件的最后访问时间?