Hallo Tom,
Es kommt aber trotz funktionstüchtigem Testprogramm
in /tmp/ nix an...Natürlich nicht. Durch tmpfile() generierte Dateien werden im _fini-Block
Wieso "natürlich nicht"? Solange unsere Programminstanz lebt, müsste doch das
Tempfile auch existieren. Ich kann ja schließlich 'was reinschreiben.
Solange dein Script läuft, ja.
Nee, scheinbar nicht. Es scheint tempnam() zu verwenden, soweit
wir das jedefalls aus dem Quellcode und Beschreibungen im Internet
erkennen konnten.
Hm. Ich habe jetzt gerade im Source nochmal nachgeschaut, und du hast
recht, es wird nicht das tmpfile() aus der C-Lib benutzt. Stattdessen
wird (über Umwege) auf Windows-Systemen GetTempFileName, auf
Netware-Systemen mktemp() verwand. Auf den übrigen Systemen wird,
sollte mkstemp() vorhanden sein, mkstemp() verwandt, ansonsten mktemp().
Das Namensmuster ist:
Windows:
Das Ergebnis von GetTempPath() +
Unizes + Netware:
Der Inhalt der Umgebungsvariablen TMPDIR, ansonsten
die Konstante P_tmpdir, wenn das nicht existiert "/tmp" +
den String "php" + 6 zufällige Zeichen.
Besteht immer noch die Frage, wo bleiben die Tempfiles
eines C-Programms, das tmpfile() verwendet bei Linux?
/tmp
Bei WinDOS tauchen sie mit Endung *.$$$ im aktiven
Verzeichnis auf und verschwinden brav wieder, wenn
das Programm endet.
Bei Windows tauchen sie da auf, wo GetTempPath() es sagt. Wenn
das . ist, dann .. Wenn das c:\tmp ist, dann ist das c:\tmp.
Grüße,
CK
Descartes sagte: 'Ich denke, also bin ich.' Ich hingegen sage: 'Ich denke nicht, also bin ich.'