在Linux系统中,每个文件都有三个时间戳:访问时间(atime)、修改时间(mtime)和更改时间(ctime)。其中,修改时间指的是文件内容最后一次被修改的时间。要获取文件的修改时间,我们可以使用stat结构体。
下面是一个简单的C程序示例,用于获取文件的修改时间:
```c
#include
#include
#include
#include
int main() {
struct stat fileStat;
char fileName[] = "test.txt";
if(stat(fileName, &fileStat) < 0) {
printf("Error occurred while getting file stat\n");
return 1;
}
// 获取文件的修改时间
time_t modifyTime = fileStat.st_mtime;
// 将修改时间转换为可读的格式
struct tm *modifyTimeinfo = localtime(&modifyTime);
char timeString[50];
strftime(timeString, 50, "%Y-%m-%d %H:%M:%S", modifyTimeinfo);
printf("File \"%s\" was last modified at: %s\n", fileName, timeString);
return 0;
}
```
在上面的代码中,我们首先定义了一个`stat`结构体`fileStat`,并指定了要获取修改时间的文件名为`test.txt`。然后,通过调用`stat`函数获取文件的信息,并将修改时间赋值给`modifyTime`变量。接着,我们使用`localtime`和`strftime`函数将修改时间转换为可读的格式,并最终打印在屏幕上。
在实际使用中,我们可以将上面的代码进行编译,并运行,即可获取到指定文件的修改时间。值得注意的是,为了能够正常运行该程序,需要在编译时链接`-lrt`参数,以引入`
总结一下,通过调用系统函数和使用`stat`结构体,我们可以在C语言中轻松获取文件的修改时间。这项操作可以帮助我们更好地管理和监控文件的变化,提高系统的稳定性和可靠性。希望本文能够对你有所帮助!