Moin!
Ehm. Du weisst schon, was tmpfile() (abhängig von der libc) macht?
Ich habe zwar nur vage Vermutungen, was der _Code_ macht - aber die Kommentare dazwischen sind doch relativ eindeutig:
/* Get a port to the directory that will contain the file. */
/* Create an unnamed file in the temporary directory. */
Aha. Eine unbenannte Datei wird angelegt. Wäre zumindest ein Indiz dafür, dass diese Datei im Verzeichnis nicht auftaucht - so ganz ohne Namen...
/* Get a file descriptor for that port. POSIX.1 requires that streams
returned by tmpfile allocate file descriptors as fopen would. */
/* Open a stream on the unnamed file.
It will cease to exist when this stream is closed. */
Und das ist vermutlich eine Eigenschaft des darunterliegenden Betriebssystems, dass eine temporäre, unbenannte Datei wieder gelöscht wird, wenn der Stream geschlossen wird. Alternativ könnte man die Datei vielleicht "retten", indem man ihr einen Namen und damit einen Directory-Eintrag verpaßt - aber bitte nicht hauen, wenn das total falschvermutet ist :) .
- Sven Rautenberg
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)