一時ファイルを作成します。Creates a temporary file. セキュリティが強化されたバージョンが提供されたため、この関数は非推奨とされました。「tmpfile_s」をご覧ください。This function is deprecated because a more secure version is available; see tmpfile_s.


FILE *tmpfile( void );

戻り値Return Value

成功した場合、 tmpfileはストリームポインターを返します。If successful, tmpfile returns a stream pointer. それ以外の場合は、 NULLポインターを返します。Otherwise, it returns a NULL pointer.


Tmpfile関数は、一時ファイルを作成し、そのストリームへのポインターを返します。The tmpfile function creates a temporary file and returns a pointer to that stream. 一時ファイルはルート ディレクトリに作成されます。The temporary file is created in the root directory. ルート ディレクトリ以外のディレクトリに一時ファイルを作成するには、tmpnam または tempnamfopen と共に使用します。To create a temporary file in a directory other than the root, use tmpnam or tempnam in conjunction with fopen.

ファイルを開くことができない場合、 tmpfileNULLポインターを返します。If the file cannot be opened, tmpfile returns a NULL pointer. この一時ファイルは、ファイルが閉じられたとき、プログラムが正常に終了したとき、または _rmtmpが呼び出されたときに自動的に削除されます。これは、現在の作業ディレクトリが変更されていないことを前提としています。This temporary file is automatically deleted when the file is closed, when the program terminates normally, or when _rmtmp is called, assuming that the current working directory does not change. 一時ファイルは、 w + b (バイナリ読み取り/書き込み) モードで開かれます。The temporary file is opened in w+b (binary read/write) mode.

TMP_MAX を超える場合、エラーが発生することがあります (「STDIO」を参照してください)。H) tmpfileを使用してを呼び出します。Failure can occur if you attempt more than TMP_MAX (see STDIO.H) calls with tmpfile.


ルーチンによって返される値Routine 必須ヘッダーRequired header
tmpfiletmpfile <stdio.h><stdio.h>

互換性の詳細については、「互換性」を参照してください。For additional compatibility information, see Compatibility.



この例では、Windows Vista を管理者権限で実行する必要があります。This example requires administrative privileges to run on Windows Vista.

// crt_tmpfile.c
// compile with: /W3
// This program uses tmpfile to create a
// temporary file, then deletes this file with _rmtmp.
#include <stdio.h>

int main( void )
   FILE *stream;
   int  i;

   // Create temporary files.
   for( i = 1; i <= 3; i++ )
      if( (stream = tmpfile()) == NULL ) // C4996
      // Note: tmpfile is deprecated; consider using tmpfile_s instead
         perror( "Could not open new temporary file\n" );
         printf( "Temporary file %d was created\n", i );

   // Remove temporary files.
   printf( "%d temporary files deleted\n", _rmtmp() );
Temporary file 1 was created
Temporary file 2 was created
Temporary file 3 was created
3 temporary files deleted

関連項目See also

ストリーム入出力Stream I/O
_tempnam、_wtempnam、tmpnam、_wtmpnam_tempnam, _wtempnam, tmpnam, _wtmpnam