前: Sysval, 上: UNIX commands


12.4 一時ファイル用の名前を生成

syscmdesyscmdに指定されたコマンドが出力やその他の目的で 一時ファイルを必要とすることもあるでしょう。 一時ファイルの名前を生成するために組み込みマクロmaketempが用意されています。

     maketemp(template)

このマクロはtemplateを元に作られる、現時点で存在しないファイルの名前に 展開されます。templateは文字列`XXXXXX'で終らなければなりません。 この6つのXはファイル名をユニークにするためにm4のプロセスidを含む 何らかの文字列によって置き換えられます。

     maketemp(`/tmp/fooXXXXXX')
     =>/tmp/fooa07346
     maketemp(`/tmp/fooXXXXXX')
     =>/tmp/fooa07346

例にあるようにmaketempを複数回呼び出すと同じ文字列に展開されることが あります。これは選択の基準がファイルが存在するかどうかだからです。 最初のファイルが作成されていないうちに、maketempを次に呼び出すと、 2つのmaketempマクロの呼び出しは同じ名前に展開される可能性があります。

maketempは引数を与えたときだけ認識されます。