私が使用しているプログラムが、大きなファイルにtmpfile()を使用すると失敗します。問題は、この関数がデフォルトで使用する /tmp に大きなファイルを作成する権限がないことです。おそらく環境変数を使用して、 tmpfile() を別の場所に書き込む方法はありますか?
編集: 問題のプログラムはsoxで、C を使用します。
環境変数 TMPDIR を使用して、ファイルを作成する場所を tmpfile() に指示できます。
sh 構文:
TMPDIR=/path/to/whatever; export TMPDIR
csh 構文:
setenv TMPDIR /path/to/whatever
もちろん
、これはあまり信頼できないでしょうman tmpfile (3)
。#define P_tmpdir "/somedir"
環境変数TMPDIR
を特定の場所に設定することもできます。