tmpfile -
テンポラリファイルを作成する
#include <stdio.h>
FILE *tmpfile(void);
tmpfile()
関数はユニークなテンポラリファイルを
バイナリリードライトモード
(w+b) でオープンする。
このファイルはクローズ時またはプログラムの終了時に自動的に削除される。
tmpfile()
関数はファイルポインターを返すか、
ユニークなファイルが作れなかったかオープンできなかった場合は
NULL を返す。
後者の場合、エラーを表す
errno を設定する。
- EACCES
- ファイルのあるディレクトリにサーチのアクセス権
(search permission) がない。
- EEXIST
- ユニークなファイル名が作成できなかった。
- EINTR
- 呼び出しがシグナルにより割り込まれた。
signal(7) 参照。
- EMFILE
- The per-process limit on the number of open file
descriptors has been reached.
- ENFILE
- オープンされているファイルの総数がシステム全体の制限に達している。
- ENOSPC
- ディレクトリに新しいファイルを追加するための空き領域がない。
- EROFS
- 読みだし専用ファイルシステムである。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
tmpfile() |
Thread safety |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD, SUSv2.
POSIX.1-2001 では、
ストリームをオープンできなかった場合、
stdout
にエラーメッセージが書き出される、と規定されている。
規格では
tmpfile()
が使うディレクトリは指定されていない。
glibc では
<stdio.h>
で定義されている
P_tmpdir
をパスの先頭に使おうとする。
これが失敗した場合は、ディレクトリ
/tmp を使う。
exit(3),
mkstemp(3),
mktemp(3),
tempnam(3),
tmpnam(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。