MKSTEMP(3)

名前
mkstemp - 他と重ならない名前を持つテンポラリファイルを作成する

書式
#include <unistd.h>

int mkstemp(char *template);

説明
関数 mkstemp() は引数 template から他と重ならない テンポラリファイル名を作成する。引数 template で指示する文字列 の後ろの6文字は XXXXXX である必要がある。この部分がファイル名を他と重ならない ようにする文字で置き換えられる。ファイルはアクセスモードがリード/ライト、 そして許可モードが0666 (glibc 2.0.6 及びそれ以前の場合)、 0600 (glibc 2.0.7 及びそれ以降)で作成される。

返り値
関数 mkstemp() は正常終了時テンポラリファイルのファイル ディスクリプター fd を返す。

エラー

EINVAL
    引数 template で指示された文字列の後ろの6文字が XXXXXX でない。

EEXIST
    すでに同じ名前を持つファイルが存在した。

バグ
古い動作(許可モード 0666 でファイルを作成する)はセキュリティ上のリスク になる場合がある。特に他のUnixでは許可モードとして 0600 を使うため、 プログラムを移植する際、この細かな違いを見落とす可能性が あるからだ。

準拠
BSD 4.3

関連項目
mktemp(3), tmpnam(3), tempnam(3), tmpfile(3)