.cファイルの.txtファイルに何かを書きたいのですが、filename_2010_08_19_20_30のように、現在のタイムスタンプを接尾辞としてそのファイルに名前を付ける必要があります。したがって、最初にfilename char配列を定義し、ファイル名を自分で処理する必要がありますか?文字を1つずつ割り当てますか?
それを行う簡単な方法はありますか?
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);
strftime関数を確認してください。