C言語 一時ファイル(テンポラリファイル)の作成 - stdio.h - [ tmpfile ]
2008.10.01 Wednesday | by LRESULT
テンポラリファイル(一時ファイル)を作成するには、tmpfile()を使います。
一時ファイルとは、プログラム内で作業用に使う為のファイルで、
fclose()が呼ばれるか、プログラムが終了した際に自動で破棄されます。
作成時には、バイナリ読み書きモード "wb+" で開かれます。
malloc()などで大量にメモリを確保する必要が無く、
データのサイズが一定でない場合には、一時ファイルが有効です。
書式 | FILE *tmpfile( void ) |
---|---|
機能 | 一時ファイル(テンポラリファイル)の作成 |
引数 | なし |
戻り値 | 成功すると、一時ファイルポインタを返し、 失敗すると、NULLを返します。 |
一時ファイルを作成し、一時ファイルへ文字列を書き込んだ後、 その文字列を読み込んで表示してみます。 |
---|
#include <stdio.h> int main(void) { FILE *fp; char buf[100]; char *str = "Hello TempFile !¥nテンポラリファイルテスト"; fp = tmpfile(); if( fp == NULL ){ printf( "一時ファイル作成に失敗しました¥n" ); return -1; } else{ printf( "一時ファイルを作成しました¥n¥n" ); } fputs( str, fp ); /* 一時ファイルに文字列を書き込む */ rewind( fp ); /* ファイル位置を先頭に戻す */ /* 一時ファイルから文字列を読み込む */ while( fgets( buf, 100, fp ) != NULL ){ printf( "%s", buf ); } fclose( fp ); return 0; } |
Hello TempFile ! テンポラリファイルテスト |
---|
と、表示されます。 このように結構簡単に作成できて、データを覚えさせておくのには有効です。 ちなみに、書き込んだ後はファイル位置が終端に移動している為、 rewind()で、先頭に戻してからファイルの読み込みを行います。 |