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

フォーマット

#include <stdio.h>
char *tmpnam(char *string);

言語レベル

ANSI

スレッド・セーフ

はい

ただし、tmpnam(NULL) の使用はスレッド・セーフではありません。

説明

tmpnam() 関数は、既存のファイルの名前と異なる有効なファイル名を作成します。 これは、この名前を string に保管します。stringNULL の場合には、tmpnam() 関数は内部静的バッファーの 結果を終了します。以降の呼び出しは、この値を破棄します。stringNULL ではないときには、これは少なくとも L_tmpnam バイトの配列を指している必要があります。L_tmpnam の値は <stdio.h> で定義されます。

tmpnam() 関数は、少なくとも最大 TMP_MAX 名の活動化グループ内で 呼び出されるたびに、異なる名前を作成します。ILE C の場合、TMP_MAX は 32 767 です。これは理論上の限度です。同時にオープンできる 実際のファイル数は、システムで使用可能なスペースによって異なります。

戻り値

tmpnam() 関数は、その名前へのポインターを戻します。固有の名前を 作成できない場合は、NULL を戻します。

この例では tmpnam() を呼び出して、有効なファイル名を作成します。
#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");
}