tmpnam_s
stdio.h:インデックス への移動
ヘッダー ファイル
stdio.h
カテゴリ
入出力ルーチン
プロトタイプ
errno_t tmpnam_s(char *s, rsize_t maxsize);
説明
tmpnam の代わりとなるもので、セキュリティが強化されています。
tmpnam_s は一意なファイル名を生成します。このファイル名は一時ファイルの名前として安全に使用することができます。tmpnam_s は、呼び出されるたびに異なる文字列を生成します(呼び出し回数は最大 TMP_MAX_S 回までです)。 TMP_MAX_S は stdio.h で 65,535 と定義されています。生成される文字列の長さは L_tmpnam_s #define 以下です。
s パラメータは NULL ポインタ以外でなければなりません。具体的には、s は maxsize 以上の長さの配列を指す必要があります。maxsize は RSIZE_MAX 以下でなければなりません。
tmpnam_s で生成される名前は、長さが maxsize より短く、s で参照される配列に格納されます。
tmpnam_s は一時ファイルの作成用に一時的な名前を用意するのに使用されるため、生成された 2 つの名前が同一になる場合も、稀ですが、あり得ます。 tmpnam_s を一時ファイルの作成だけに使用する場合は、代わりに tmpfile_s を使用してください。
戻り値
tmpnam_s は、生成した文字列を s で参照される配列に書き込み、ゼロを返します。 正常に終了しなかった場合は、NULL 文字を s[0] に書き込み、ゼロ以外の値を返します。
例
#include <stdio.h> int main(void) { char name[13]; if(std::tmpnam_s(name, 13)){ printf("Unable to create temporary name"); } else{ printf("Temporary name: %s\n", name); } return 0; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
tmpnam_s |
+ |
+ |
+ |
+ |