12,964
回編集
639行目: | 639行目: | ||
</source> | </source> | ||
<br><br> | <br><br> | ||
== 一時的なバイナリファイルを作成する == | |||
C言語で、一時的なバイナリファイルを作成するには、stdio.hのtmpfile関数を使用する。<br> | |||
<br> | |||
tmpfile関数は、既存のファイルとは異なる一時的なバイナリファイルを作成する関数である。<br> | |||
tmpfile関数で作成したバイナリファイルは、作成時に更新モード ("wb+") でオープンされる。<br> | |||
また、生成したファイルは、ファイルのクローズ時またはプログラムの終了時に自動的に削除される。<br> | |||
<br> | |||
tmpfile関数は、操作が成功した場合は作成したファイルへのポインタを返し、操作が失敗した場合はNULLを返す。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
FILE *tmpfile(void); | |||
</source> | |||
<br> | |||
以下の例では、tmpfile関数を使用して、一時的なバイナリファイルを作成してデータを書き込んだ後、そのファイルからデータを読み込んで表示している。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#define N 256 | |||
int main(void) | |||
{ | |||
char readline[N] = {'\0'}; | |||
FILE *fp; | |||
/* 一時ファイルの作成 */ | |||
if ( (fp = tmpfile()) == NULL ) | |||
{ | |||
fprintf(stderr, "一時ファイルの作成に失敗しました.\n"); | |||
return EXIT_FAILURE; | |||
} | |||
/* 一時ファイルに適当に文字列を書き込む */ | |||
for (int i = 0; i < 5; i++ ) | |||
{ | |||
fprintf(fp, "test%d\n", i); | |||
} | |||
/* 念のためバッファフラッシュする */ | |||
fflush(fp); | |||
/* ファイル位置表示子を戻す */ | |||
rewind(fp); | |||
/* 一時ファイルから文字列を読み込む */ | |||
while ( fgets(readline, N, fp) != NULL ) | |||
{ | |||
fprintf(stdout, "%s", readline); | |||
} | |||
/* 一時ファイルのクローズ(削除) */ | |||
fclose(fp); | |||
return EXIT_SUCCESS; | |||
} | |||
</source> | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C]] | [[カテゴリ:C]] |