我想將某些東西寫入.c文件中的.txt文件,但需要用當前時間戳命名該文件作爲後綴,就像filename_2010_08_19_20_30一樣。所以我必須首先定義文件名字符數組,並自己處理文件名?一個一個地分配字符?如何將時間轉換爲c中的c字符串?
有沒有簡單的方法可以做到這一點?
我想將某些東西寫入.c文件中的.txt文件,但需要用當前時間戳命名該文件作爲後綴,就像filename_2010_08_19_20_30一樣。所以我必須首先定義文件名字符數組,並自己處理文件名?一個一個地分配字符?如何將時間轉換爲c中的c字符串?
有沒有簡單的方法可以做到這一點?
有一個叫做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;
}
退房的strftime函數:
time_t timet;
struct tm * timeinfo;
char buffer [32];
time (&timet);
timeinfo = localtime(&timet);
strftime(buffer,32,"_%Y_%m_%d_%H_%M",timeinfo);