Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tempnam(3V) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

creat(2)

unlink(2)

fopen(3S)

malloc(3)

mktemp(3)

TMPNAM(3V)  —  NEWS-OS Programmer’s Manual

名称

tmpnam, tempnam − テンポラリファイルの名前を作成する

形式

#include <stdio.h>

char ∗tmpnam(s)
char ∗s;

char ∗tempnam(dir, pfx)
char ∗dir;
char ∗pfx;

解説

これらの関数は安全に使えるテンポラリファイル用のファイル名を 作成します。

tmpnam は、 <stdio.h> で定義されている P_tmpdir をファイルの先頭につけます。
もし、 s がナルポインタなら、内部の静的領域に結果を格納し、 そのポインタを返します。 それ以降に tmpnam が呼び出された時には、この領域の内容は変更されます。 s がナルポインタでなければ、 少なくとも大きさが L_tmpnam バイトである文字列バッファの先頭アドレスでなければなりません。 L_tmpnam は <stdio.h> に定義されています。 tmpnam は、 s に、ファイル名を格納します。リターン値は、 s となります。

tempnam は、ユーザにディレクトリの指定を許します。 引数 dir は、ファイルが作られるディレクトリ名を指定します。 もし dir がナルポインタか、アクセスできないディレクトリならば 環境変数 TMPDIR で指定されたディレクトリ名を使います。 TMPDIR が定義されていない、またはそのディレクトリにアクセスできないときは <stdio.h> で定義されている P_tmpdir をファイルの先頭につけます。 そこにもアクセスできない場合は、 /tmp が使われます。

多くのアプリケーションでは、テンポラリファイルの始めの 数文字に特定の文字列を使っています。 引数 pfx は、このために使います。 この引数はナルポインタでも、テンポラリファイルの始めにつけたい 文字でもかまいません。 tempnam は、完成したファイル名を格納するための領域を確保するために malloc(3) を使います。 したがって、 tempnam によって返されたポインタは free(3) によって解放できます。 もし、 malloc でメモリが確保できない、または上に記述した、どのディレクトリ名でも テンポラリファイルが作れない場合は、 tempnam はナルポインタを返します。

関連ファイル

/var/tmp

関連事項

creat(2), unlink(2), fopen(3S), malloc(3), mktemp(3),

注意事項

これらの関数は、呼び出されるたびに異なるファイル名を作ります。 これらの関数で得られたファイルを fopen(3S)、 creat(2) で作成し、それを一時的なものとして扱うかぎり、同じ名前が使われる ことはありません。ファイルを使い終えた時に 削除するのはユーザの責任において行なわれなければなりません。

一つのプロセスで TMP_MAX ( <stdio.h> で定義されている)回より多く呼び出された時には、"/" を ファイル名の前につけます。

ファイル作成とファイルオープンのときに、 同時にアクセスされた場合別のプロセスが同じ名前でファイル を作成することができます。 別のプロセスがこれらの関数または mktemp(3) を使っていれば、上記のようなことは起こりません。

バグ

TMP_MAX が 26 というのは少ないかもしれません。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026