从文件中读取信息并打印出来。我将 stat
中的修改时间作为一个名为 mod_time
的 int
保存到一个结构中,以便稍后调用。然而,当我想使用 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/