mktemp
は、ファイルをデフォルトで/tmp
に作成します。多くのディストリビューションでは、/tmp
は永続的です(つまり、ディスクにバックアップされ、メモリバックアップされません)。
あなたが探しているのは、メモリバックアップマウントでファイルを作成することです。通常、これらはマウントされているtmpfs
です。例えば、私のアーチのLinuxラップトップ上で、私のtmpfsのマウントは以下のとおりです。
$ mount | grep tmpfs
[..]
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
だからこのシステム上で、私は開くことができますし、ファイルへの書き込み/dev/shm/
に/run
に、彼らは私の記憶でバックアップされます、彼らはしませんブーツ全体にわたって持続し、アクセスは迅速かつ安価になります。
質問に戻ると、mktemp
が使用するディレクトリを変更できるようです。 manページを引用:
-p DIR, --tmpdir[=DIR]
interpret TEMPLATE relative to DIR; if DIR is not specified, use $TMPDIR if set, else /tmp. With this option, TEMPLATE must not be
an absolute name; unlike with -t, TEMPLATE may contain slashes, but mktemp creates only the final component
EDIT - いくつかのより多くの事を:
- これは、すべてのディストリビューションに依存します。他のディストリビューションでは
tmpfs
を/tmp
にマウントすることができます。興味深いことに、/ dev/shmは、shm_open
で作成された共有メモリオブジェクトが格納される場所です。
ファイルに情報やデータストアがありますか? –
@AndrewHenleファイルに情報がありません。ブート後に初めてプロセスが生成されたか、クラッシュ後に再生成されたかを調べる方法としてのみ使用されます。 – Manoj
(create and)共有メモリセグメント。これらはプロセスの処理(またはクラッシュ)後も永続的ですが、再起動後も存続しません。 – wildplasser