38

Linuxで「temp」ディレクトリを見つけるにはどうすればよいですか?一時ディレクトリを返すプラットフォームニュートラルなC++関数を書いています。MacとWindowsには、これらの結果を返すAPIがあります。Linuxでは、私は困惑しています。

4

5 に答える 5

31

次の変数を確認します。

すべて失敗した場合は、ディレクトリを使用してみてください/tmp

tempnam関数を使用して、一意の一時ファイル名を生成することもできます。

于 2008-08-27T20:06:25.840 に答える
19

編集:コメンターからのフェアポイント。tmpnam最近は良い選択ではありません。代わりにmktemp/を使用してください。mkstemp

歴史的な答え: POSIX に準拠し、tmpnam を使用します (一時的な場所に完全なファイル名が表示されます)。

于 2008-08-27T20:00:04.373 に答える
12

$TMPDIR 環境変数の値を使用し、それが存在しない場合は/tmp.

于 2008-08-27T19:59:13.847 に答える
11

特にGNUの観点から、受け入れられるシーケンスは次のとおりです。

  1. プログラムがSUID/SGID ( issetugid() == 0 )として実行されていない場合にのみ、環境変数TMPDIR ( getenv("TMPDIR") ) を確認します。
  2. それ以外の場合は、P_tmpdirが定義されていて有効であれば使用します
  3. 最後に、それらが失敗した場合は、 paths.hから入手できる_PATH_TMPを使用します。

拡張機能またはモジュールを追加する場合は、コアがこの目的のための機能を提供しているかどうかを確認してください。たとえば、PHP は main/php_open_temporary_file.h から php_get_temporary_directory() をエクスポートします。

于 2013-08-29T01:38:22.887 に答える
1

標準cでは、次のことを試すことができます:P_tmpdir

于 2008-08-27T19:59:08.667 に答える