標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
ISO C |
両方 |
#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(ON) で実行中のときに、tmpnam() 関数は異なる動作をします。
__POSIX_TMPNAM 環境変数が設定解除されているか、NO に設定されていない場合、戻されたファイル名は、UNIX ファイル・システムの固有ファイル名です。ファイル名のディレクトリー・コンポーネントは、TMPDIR 環境変数の値、または TMPDIR が定義されていない場合には '/tmp' の値になります。
__POSIX_TMPNAM 環境変数が NO に設定されている場合、戻されたファイル名は、呼び出しアプリケーションが POSIX(OFF) を実行していた場合と同じです。
⁄* 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");
}