ls -l命令和stat的结果不一致
在linux下发现一个很奇怪的现象,我把几个7月的文件夹(以及文件夹下的文件和目录)tar到一个新的目录下。用ls -l命令看到的文件时间还是7月份的时间。然后我用以下代码去显示解压后的文件的时间,发现用程序显示出的时间却是当前解压缩的时间。
代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <time.h>
#include <string.h>
int main()
{
char strFilename[200]="xxxxxxxxxxxxxxxxxxxx";
struct dirent* pdir;
char strFile[200];
DIR* dir;
time_t tDirCreate;
struct stat buf;
dir = opendir(strFilename);
while(( pdir = readdir(dir)) != NULL)
{
if ((strcmp(pdir->d_name,".") != 0) && (strcmp(pdir->d_name,"..") != 0))
{
memset(strFile,'\0',sizeof(strFile));
strcpy(strFile,strFilename);
strcat(strFile,"/");
strcat(strFile,pdir->d_name);
sprintf(strFile,"%s%s",strFile,"/");
memset(&buf,'\0',sizeof(buf));
stat(strFile,&buf);
tDirCreate=buf.st_ctime;
printf("\niDelFile:%s\n %s %s %s\n",strFile,ctime(&tDirCreate),
ctime(&buf.st_atime),ctime(&buf.st_mtime));
}
}
closedir(dir);
exit(1);
}
代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <time.h>
#include <string.h>
int main()
{
char strFilename[200]="xxxxxxxxxxxxxxxxxxxx";
struct dirent* pdir;
char strFile[200];
DIR* dir;
time_t tDirCreate;
struct stat buf;
dir = opendir(strFilename);
while(( pdir = readdir(dir)) != NULL)
{
if ((strcmp(pdir->d_name,".") != 0) && (strcmp(pdir->d_name,"..") != 0))
{
memset(strFile,'\0',sizeof(strFile));
strcpy(strFile,strFilename);
strcat(strFile,"/");
strcat(strFile,pdir->d_name);
sprintf(strFile,"%s%s",strFile,"/");
memset(&buf,'\0',sizeof(buf));
stat(strFile,&buf);
tDirCreate=buf.st_ctime;
printf("\niDelFile:%s\n %s %s %s\n",strFile,ctime(&tDirCreate),
ctime(&buf.st_atime),ctime(&buf.st_mtime));
}
}
closedir(dir);
exit(1);
}
...全文
相关推荐
自定义函数实现linux ls -a -l 命令_ls函数linux_自定义函数实现linux命令_
自定义函数实现linux ls -a -l 命令
linux 系统命令 ls -l命令的实现
对linux 系统命令 ls -l命令的实现,通过gcc编译,查看目录下文件基本信息。
用c函数实现ls -l功能
linux下使用各种c函数实现ls -l的功能,主要使用stat函数确定文件的属性,具体内容见文档,里面含有各个模块的解释,最后附加啦整体的源代码,仅供参考学习。
linux 查看文件的属性(ls,lsattr,file,stat)实例详解
主要介绍了linux 查看文件的属性(ls,lsattr,file,stat)实例详解的相关资料,需要的朋友可以参考下
南京大学操作系统实验-实现ls ls -l cat命令.zip
南京大学操作系统实验-实现ls ls -l cat命令.zip


