c - 如何将 st_mtime(从 stat 函数获取)转换为字符串或字符

标签 c datetime android-ndk string-conversion

我需要将 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, &lt);
char timbuf[80];
strftime(timbuf, sizeof(timbuf), "%c", &lt);

然后使用 timbuf 或许通过 strdup -ing 它。

注意。我正在使用 localtime_r 因为它对线程更友好。

关于c - 如何将 st_mtime(从 stat 函数获取)转换为字符串或字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542345/

相关文章:

安卓NDK : CMAKE how to move IMPORTED shared library to libs folder

在 Android 中使用 FFmpeg 时出现 Android NDK 错误?

c - 在C中,如何根据文件内容退出循环

php - 获取 ISO 8601 与 seconds.decimal-fraction-of-second date 在 php 中?

c - Android gcc sysroot 和链接器

mysql - 截断不正确的日期时间值 mysql

日期时间类型的 SQL LIKE 语句

c - 类有序访问二叉树上的线性算法

我可以在 C 中的 Switch Case 中的另一个案例中使用一个案例吗

c - 如何用GCC生成IP相对寻址指令