Next: File Name Completion, Previous: File Name Expansion, Up: File Names
一時的なファイルに書く必要があるプログラムもあります。 そのようなファイル向けの名前を作る通常の方法はつぎのとおりです。
(make-temp-name (expand-file-name name-of-application temporary-file-directory))
make-temp-name
の仕事は、
異なる2人のユーザーや異なる2つのジョブがまったく同じファイル名を
使わないようにすることです。
この例では、変数temporary-file-directory
を使って
一時的なファイルを置く場所を決めています。
すべてのEmacs Lispプログラムでは、
すべての一時的なファイル向けのディレクトリを指定する
一意な方法をユーザーに提供するために、
この目的にはtemporary-file-directory
を使うべきです。
この関数は、一意なファイル名として使える文字列を生成する。 名前はstringで始まり、各Emacsジョブごとに異なる数を含む。
(make-temp-name "/tmp/foo") "/tmp/foo232J6v"同じEmacsで動作している異なるライブラリのあいだで衝突しないように、
make-temp-name
を使う各Lispプログラムでは、 独自のstringを使うべきである。 stringの末尾に付加される数は、 異なるEmacsジョブで動いている同じアプリケーションを区別する。 文字を余計に追加することで、1つのEmacsジョブであっても 異なる名前の個数を非常に多くできる。
この変数は、一時的なファイルを作成するためのディレクトリ名を指定する。 その値はディレクトリ名(see Directory Names)であるべきだが、 Lispプログラムにとっては、 その値がディレクトリのファイルとしての名前であっても処理できるほうがよい。 この値を
expand-file-name
の第2引数に使うと、 そのようにできる。デフォルト値は、読者のオペレーティングシステムにおいて 合理的な方法で決定される。 GNUとUNIXシステムでは、環境変数
TMP
やTMPDIR
を基にする。読者が一時的なファイル名を選ぶために
make-temp-name
を 使わない場合であっても、 一時的なファイル名を置くディレクトリを決めるために この変数を使うべきである。