文件修改时间作为 C 中的整数

file modification time as integer in C

我已经看到并尝试了不同的方式来显示上次修改文件的时间,并且我使用的是 C 编程语言。

我想要实现的是最不 CPU 密集的函数来确定给定文件的修改时间,但我不想将其显示为字符串或显示部分字符串,而是想将其存储作为一个大整数,所以我可以稍后对其进行数学运算。

所以基本上我想模仿 PHP 的 filemtime 的操作,但在 C 中,因为我正在编写 apache 模块。

有什么想法可以解决这个问题,或者有什么想法可以使用哪些好的函数来实现这一点而不会使事情变得冗长?

您可以声明一个 stat 结构并使用 stat( ) 获取定义的 stat 结构中的文件详细信息。

示例代码:

#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
int main()
{
  struct stat file_details;
  stat("homework.txt", &file_details);
  time_t modify_time = file_details.st_mtime; 
  printf("Last modified : %lld",modify_time);
  return 0;
}

我不知道你会如何管理它的数学,但这是 time_t {aka long int} 中的 modify_time

我花了 20 分钟才找到正确的函数,但我设法将此函数滚动到 return 时间作为实际数字:

函数中的 F 表示文件名,当我调用该函数时,我将文件作为硬编码字符串传递。

time_t filemodtime(char *f){struct stat attr;stat(f,&attr);return time(&attr.st_mtime);}