tempfile -
安全な一時ファイルの作成
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
関連項目¶
tempnam(3),
mktemp(1)
倉澤 望 <nabetaro@debian.or.jp>, 2012
Debian JP Documentation ML <debian-doc@debian.or.jp>