我想在.c文件中向.txt文件写入内容,但要求将该文件命名为当前时间戳作为后缀,就像filename_2010_08_19_20_30。所以我必须先定义文件名字符数组并自己处理文件名吗?一个个字符赋值吗?
有没有更简单的方法?
有没有更简单的方法?
有一个函数叫做strftime
,它的存在是为了将时间值写入可读性强的字符串中。文档:http://linux.die.net/man/3/strftime
一个例子:
#include <time.h>
#include <stdio.h>
int main()
{
FILE* file;
char filename[128];
time_t now;
struct tm tm_now;
now = time(NULL);
localtime_r(&now, &tm_now);
strftime(filename, sizeof(filename), "filename_%Y_%m_%d_%H_%M.txt", &tm_now);
file = fopen(filename, "w");
fprintf(file, "Hello, World!\n");
fclose(file);
return 0;
}
time_t timet;
struct tm * timeinfo;
char buffer [32];
time (&timet);
timeinfo = localtime(&timet);
strftime(buffer,32,"_%Y_%m_%d_%H_%M",timeinfo);