tmpfile() - 一時ファイルの作成

標準

標準/拡張機能 C/C++ 依存項目

ISO C
POSIX.1
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3

両方  

形式

#include <stdio.h>

FILE *tmpfile(void);

機能説明

一時バイナリー・ファイルを作成します。これは、wb+ モードで一時ファイルをオープンします。ファイルは、クローズしたとき、またはプログラムが終了したとき 自動的に削除されます。

注: tmpfile() 関数が、1 つのアドレス・スペース内の複数のタスクから発行される場合は、一時ファイル名が固有ではなくなる可能性があります。1 つのアドレス・スペースで tmpfile() 関数を同時に実行すると、エラーになります。例えば、ファイルのオープンは、そのファイルが既にオープンされているためにエラーになります。

戻り値

正常に実行された場合、tmpfile() は、作成されたファイルと関連したストリームへのポインターを戻します。

tmpfile() は、ファイルをオープンできない場合は、NULL ポインターを戻します。正常終了時 (exit()) に、これらの一時ファイルは除去されます。異常終了の場合には、これらのファイルを 除去しようとします。

POSIX C の場合の戻り値

呼び出しアプリケーションが z/OS® UNIX プログラムの 場合には、一時ファイルは階層ファイル・システムで作成されます。ファイルは、TMPDIR 環境変数によって、または TMPDIR が 定義されていない場合には '/tmp' によって参照される ディレクトリーで作成されます。

XPG4 の特殊な動作: errno が取る値は次のとおりです。
エラー・コード
説明
EINTR
tmpfile() 実行時にシグナルがキャッチされました。
EMFILE
OPEN_MAX ファイル記述子が呼び出しプロセスで現在 オープンされています。
{FOPEN_MAX} ストリームは、呼び出しプロセスで 現在オープンしています。
ENFILE
最大許容数のファイルが、現在システムでオープンしています。
ENOMEM
使用可能なストレージ・スペースが不十分です。
ENOSPC
新規のファイルが含まれているディレクトリーまたは ファイル・システムは拡張できません。

CELEBT13
⁄* CELEBT13                                      

   This example creates a temporary file and if successful,                     
   writes tmpstring to it.                                                      
   At program termination, the file is removed.                                 

 *⁄                                                                             
#include <stdio.h>                                                              
                                                                                
int main(void) {                                                                
   FILE *stream;                                                                
   char tmpstring[ ] = "This string will be written";                           
                                                                                
{                                                                               
   if((stream = tmpfile( )) == NULL)                                            
      printf("Cannot make a temporary file¥n");                                 
   else                                                                         
      fprintf(stream, "%s", tmpstring);                                         
}                                                                               
}                                                                               

関連情報