c - int to time_t* 打印类型

标签 c printing types casting time-t

从文件中读取信息并打印出来。我将 stat 中的修改时间作为一个名为 mod_timeint 保存到一个结构中,以便稍后调用。然而,当我想使用 ctime() 函数时,我遇到了一个问题,因为它需要一个 time_t* 类型的变量。我尝试使用类型转换,但这只会导致段错误。任何帮助将非常感激。

void print(struct file_info **array)
{
    int i;
    for (i = 0; array[i] != NULL; i++)
    {
            printf("%s\n", array[i]->name);
            printf("mod_time: %s\n", ctime((time_t*)array[i]->mod_time));
    }
}

以上是带有类型转换的示例,它产生了段错误。最初的只是排除了 (time_t*) 类型转换,这导致了“没有转换”警告。

最佳答案

因为ctime 函数接受一个指向time_t 的指针,我认为time_t 的数据必须在内存中,而不仅仅是在表达式中.

在内存上制作time_t数据的例子:

void print(struct file_info **array)
{
    int i;
    for (i = 0; array[i] != NULL; i++)
    {
            time_t tmp = (time_t)array[i]->mod_time; /* I'm not sure if this works */
            printf("%s\n", array[i]->name);
            printf("mod_time: %s\n", ctime(&tmp));
    }
}

关于c - int to time_t* 打印类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546674/

相关文章:

c - 这段代码有一个错误

c - setuid(0) 无法为 root 拥有的程序执行

javascript - HTML 在某些页面中打印分页

types - 从 Rust 中的数组调用闭包

java - Java中如何判断一个Type是否实现了某个接口(interface)?

应用程序中是否可以存在相同库(具有相同名称)的两个不同版本?

c - 这段C代码中的 "frec[v1[i]]++"是什么意思

android - 如何在 android/ios 中使用 cordova ionic 2 打印期间添加打印机

css - 适用于屏幕媒体但不适用于打印媒体的字体

php - mysql_query 在返回时保留在表中创建的数据类型?