書式
tempfile [-d DIR] [-p STRING] [-s STRING] [-m MODE] [-n FILE] [--directory=DIR] [--prefix=STRING] [--suffix=STRING] [--mode=MODE] [--name=FILE] [--help] [--version]説明
tempfile は、一時ファイルを安全な方法で作成します。ファイル名の選択に tempnam(3) を使用し、これを O_RDWR | O_CREAT | O_EXCL を用いてオープンします。ファイル名は標準出力に出力されます。ディレクトリの選択に関する実際のステップは、tempnam(3) を参照してください。
ファイルを作成するディレクトリを、以下の順番で探します (しかし確実なことは tempnam(3) を参照してください)。
- a)
- 環境変数 TMPDIR が存在し、適切なディレクトリ名が設定されていれば、これを使用します。
- b)
- そうでない場合、--directory 引数が指定されていて適切であれば、これを使用します。
- c)
- そうでない場合、P_tmpdir (<stdio.h> で定義) が適切であれば、これを使用します。
- d)
- 最後に、実装で定義したディレクトリ (/tmp) を使用します。
オプション
- -d, --directory DIR
- ファイルを DIR に配置します。
- -m, --mode MODE
- ファイルのモードを 0600 に代えて MODE で開きます。
- -n, --name FILE
- ファイル名として tempnam(3) に代えて FILE を使用します。このオプションを与えると、-d, -p, -s の各オプションを無視します。
- -p, --prefix STRING
- STRING の 5 文字までを名前の生成に使用します。
- -s, --suffix STRING
- STRING を末尾にするファイルを生成します。
- --help
- 使用方法を標準出力に表示し、正常終了します。
- --version
- バージョン情報を標準出力に表示し、正常終了します。
戻り値
終了ステータスが 0 は一時ファイルが正常に作成できたことを意味します。その他の終了ステータスはエラーです。バグ
NFS パーティションでファイルを作成する際、排他作成は保証されません。tempfile は一時ディレクトリを作成できません。tempfile は非推奨です。代わりに mktemp(1) を使用してください。例
-
#!/bin/sh #[...] t=$(tempfile) || exit trap "rm -f -- '$t'" EXIT #[...] rm -f -- "$t" trap - EXIT exit