一時ファイルを作成します。Creates a temporary file. これは、「CRT のセキュリティ機能」の説明にあるとおり、セキュリティが強化されたバージョンの tmpfile です。It is a version of tmpfile with security enhancements as described in Security Features in the CRT.


errno_t tmpfile_s(
   FILE** pFilePtr


ストリームに生成されたポインターのアドレスを格納するポインターのアドレスです。The address of a pointer to store the address of the generated pointer to a stream.

戻り値Return Value

正常終了した場合は 0 を返します。失敗した場合はエラー コードを返します。Returns 0 if successful, an error code on failure.

エラー条件Error Conditions

pFilePtrpFilePtr 戻り値Return Value 内容 pFilePtrContents of pFilePtr

上記のパラメーターの検証エラーが発生した場合は、「パラメーターの検証」に説明されているとおり、無効なパラメーター ハンドラーが呼び出されます。If the above parameter validation error occurs, the invalid parameter handler is invoked, as described in Parameter Validation. 続けるには、実行が許可された場合errnoに設定されているEINVAL 、戻り値はEINVALします。If execution is allowed to continue, errno is set to EINVAL and the return value is EINVAL.


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

ファイルを開けない場合tmpfile_s書き込みますNULLpFilePtrパラメーター。If the file cannot be opened, tmpfile_s writes NULL to the pFilePtr parameter. 通常、またはプログラムの終了時に、ファイルが閉じられたときに、この一時ファイルが自動的に削除 _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.

しようとすると、エラーが発生する可能性が複数のから(STDIO を参照してください。H) 呼び出しtmpfile_sします。Failure can occur if you attempt more than TMP_MAX_S (see STDIO.H) calls with tmpfile_s.


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

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



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

// crt_tmpfile_s.c
// This program uses tmpfile_s to create a
// temporary file, then deletes this file with _rmtmp.

#include <stdio.h>

int main( void )
   FILE *stream;
   char tempstring[] = "String to be written";
   int  i;
   errno_t err;

   // Create temporary files.
   for( i = 1; i <= 3; i++ )
      err = tmpfile_s(&stream);
      if( err )
         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