我需要将 st_mtime 转换为字符串格式以将其传递给 java 层,我尝试使用此示例 http://www.cplusplus.com/forum/unices/10342/但是编译器产生错误
invalid conversion from 'long unsigned int*' to 'const time_t* {aka long int const*}'
initializing argument 1 of 'tm* localtime(const time_t*)' [-fpermissive]
我做错了什么,如何在字符串表示中使用 stat 函数获取文件创建时间。
请帮忙。
最佳答案
根据stat(2)手册页,st_mtime
字段是一个 time_t
(即在阅读 time(7) 手册页后,自 unix Epoch 之后的秒数)。
你需要localtime(3)将 time_t
转换为本地时间的 struct tm
,然后,strftime(3)将其转换为 char*
字符串。
所以你可以编写如下代码:
time_t t = mystat.st_mtime;
struct tm lt;
localtime_r(&t, <);
char timbuf[80];
strftime(timbuf, sizeof(timbuf), "%c", <);
然后使用 timbuf
或许通过 strdup
-ing 它。
注意。我正在使用 localtime_r
因为它对线程更友好。
关于c - 如何将 st_mtime(从 stat 函数获取)转换为字符串或字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542345/