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

標準

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

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

両方  

形式

#include <stdio.h>

char *tmpnam(char *string);

機能説明

既存のファイルの名前と異なる有効なファイル名を作成します。これは、この名前を string に保管します。string が NULL ポインターの場合には、tmpnam() は 内部静的バッファーの結果を終了します。以降の呼び出しは、このオブジェクトを変更できます。string が NULL ポインターでない場合には、これは少なくとも L_tmpnam バイトの配列を指している 必要があります。L_tmpnam の値は、stdio.h ヘッダー・ファイルに定義されています。

戻り値

ストリングが NULL ポインターの場合には、tmpnam() は、生成された固有の名前が入れられる内部静的オブジェクトを指す ポインターを戻します。そうでない場合には、string が NULL ポインターでない と、これは string の値を戻します。tmpnam() 関数は、少なくとも最大 TMP_MAX 名の モジュール内で呼び出されるたびに、異なる名前を作成します。tmpnam() が戻した名前を使用して作成されたファイルは、プログラムの終わりで自動的に廃棄されません。

POSIX C の場合の戻り値

プログラムが POSIX(ON) で実行中のときに、tmpnam() 関数は異なる動作をします。

__POSIX_TMPNAM 環境変数が設定解除されているか、NO に設定されていない場合、戻されたファイル名は、UNIX ファイル・システムの固有ファイル名です。ファイル名のディレクトリー・コンポーネントは、TMPDIR 環境変数の値、または TMPDIR が定義されていない場合には '/tmp' の値になります。

__POSIX_TMPNAM 環境変数が NO に設定されている場合、戻されたファイル名は、呼び出しアプリケーションが POSIX(OFF) を実行していた場合と同じです。

CELEBT14
⁄* CELEBT14                                      

   This example calls &tmpnam. to produce a valid file name.                    

 *⁄                                                                             
#include <stdio.h>                                                              
                                                                                
int main(void)                                                                  
{                                                                               
   char *name1;                                                                 
   if ((name1 = tmpnam(NULL)) !=NULL)                                           
      printf("%s can be used as a file name.¥n", name1);
   else printf("Cannot create a unique file name¥n");
}                                                                               

関連情報