解决方法
使用stat()函数.在glibc的最新版本中,st_mtim(注意:没有尾随e)是一个类型为struct timespec的字段,用于保存文件修改时间:
struct stat st; if (stat(filename,&st)) { perror(filename); } else { printf("%s: mtime = %lld.%.9ld\n",filename,(long long)st.st_mtim.tv_sec,st.st_mtim.tv_nsec); }
您应该在构建系统中检查struct stat中是否存在st_mtim,并且如果不存在,则准备退回到st_mtime(其类型为time_t,只有1秒的分辨率).