14.2.17 Temporary Files

Last-modified: 2025-03-23 (日) 19:26:51

14.2.17 一時ファイル

一時的にのみ使用されるファイルにデータを書き込む必要がある場合があります。これは、Octave 内から起動された外部プログラムがデータにアクセスする必要がある場合に最もよく使用されます。Octave が終了すると、すべての一時ファイルは削除されるため、この手順を手動で実行する必要はありません。

[fid, name, msg] = mkstemp ("template")

: [fid, name, msg] = mkstemp ("template", delete)

テンプレートから作成された一意の名前を持つ新しい一時ファイルに対応するファイル記述子fidを返します。

テンプレートの最後の 6 文字は、ファイル名を一意にする文字列に置き換えられます"XXXXXX"。その後、読み取り/書き込みモードとシステムに依存する権限でファイルが作成されます (GNU/Linux システムでは、glibc 2.0.7 以降のバージョンでは権限は 0600 になります)。ファイルはバイナリ モードで O_EXCL フラグ付きで開かれます。

オプションの引数deleteが指定され、それが true の場合、Octave の終了時にファイルは自動的に削除されます。

成功した場合、fidは有効なファイル ID、nameはファイル名、msg は空の文字列になります。それ以外の場合、fidは -1、 nameは空、msg にはシステム依存のエラー メッセージが含まれます。

関連項目: tempname、tempdir、P_tmpdir、tmpfile、fopen。

: [fid, msg] = tmpfile ()

一意の名前を持つ新しい一時ファイルに対応するファイル ID を返します。

ファイルはバイナリ読み取り/書き込み ( "w+b") モードで開かれ、閉じられるか Octave が終了すると自動的に削除されます。

成功した場合、fidは有効なファイル ID となり、msg は空の文字列となります。それ以外の場合、fidは -1 となり、msg にはシステム依存のエラー メッセージが含まれます。

参照: tempname、mkstemp、tempdir、P_tmpdir。

: fname = tempname ()

: fname = tempname (dir)

: fname = tempname (dir, prefix)

一意の一時ファイル名を文字列として返します。

プレフィックスが省略された場合は、 の値"oct-"が使用されます。

dirも省略された場合は、一時ファイルのデフォルト ディレクトリ ( P_tmpdir) が使用されます。dirが指定されている場合は、それが存在している必要があります。そうでない場合は、一時ファイルのデフォルト ディレクトリが使用されます。

プログラミング ノート: 指定されたファイルは によって開かれていないためtempname、プログラムがファイルを開こうとした時点では使用できない可能性がありますが、その可能性は比較的低いです。これが問題になる場合は、 を参照してくださいtmpfile。

参照: mkstemp、tempdir、P_tmpdir、tmpfile。

: dir = tempdir ()

ホスト システムの一時ファイル ディレクトリの名前を返します。

ディレクトリ名は、まず環境変数 から取得されますTMPDIR。環境変数 が存在しない場合は、環境変数TMP(および Windows プラットフォームでは優先度が高い環境変数TEMP) がチェックされます。いずれも設定されていない場合は、 によって返されるシステム デフォルトが P_tmpdir使用されます。

P_tmpdir、tempname、mkstemp、tmpfileも参照してください。

: sys_tmpdir = P_tmpdir ()

ホスト システムの一時ファイルの デフォルトディレクトリの名前を返します。

プログラミング ノート: によって返される値はP_tmpdir常にデフォルトの場所です。 tempdirユーザーがTMPDIR 環境変数でデフォルトを上書きした場合、この値は から返される値と一致しない可能性があります。

参照: tempdir、tempname、mkstemp、tmpfile。