mktemp
erstellt Dateien in /tmp
(standardmäßig). In vielen Distributionen ist /tmp
persistent (d. H. Disk-backed, nicht memory-backed).
Was Sie suchen, ist eine Datei in einem Speicher-Backed-Mount zu erstellen. Typischerweise sind dies die tmpfs
Halterungen. Zum Beispiel auf meinem Arch Linux-Laptop, meine tmpfs Halterungen sind:
$ 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)
So auf diesem System kann ich öffnen und Dateien in /dev/shm/
auf /run
schreiben und sie werden von meinem Speicher gesichert werden, werden sie nicht über Stiefel hinweg bestehen und der Zugang wird schnell und billig sein.
Zurück zu Ihrer Frage, es scheint, dass Sie das Verzeichnis ändern können, das von mktemp
verwendet wird. Unter Angabe der Manpage:
-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 - einige Dinge:
- das ist alles Verteilung abhängig; andere Distributionen können
tmpfs
bei /tmp
montieren.
- Interessanterweise ist/dev/shm der Speicherort für gemeinsam genutzte Speicherobjekte, die mit
shm_open
erstellt wurden.
Gibt es Informationen oder Daten in der Datei? –
@AndrewHenle Nein, es gibt keine Informationen in der Datei, es wird nur als eine Möglichkeit verwendet, um herauszufinden, ob es der Prozess nach dem Absturz zum ersten Mal nach dem Start oder neu erstellt wurde – Manoj
(create und) anhängen a Shared-Memory-Segment. Diese sind nach Ablauf des Prozesses (oder Absturz) dauerhaft, überstehen jedoch den Neustart nicht. – wildplasser