Hallo Tom,
Na und ich behaupte dann nochmals, dass es eben ein Unterscheid ist, ob
das Betriebssystem eine "echte" temporäre Datei zur verfügung stellt,
Wie definierst du 'echte' temporäre Dateien? Eine temporäre _Datei_(!) ist
eine Datei, die nach einem bestimmten Zeitraum gelöscht wird. Mehr nicht.
oder eine Applikation/Daemon (PHP, PERL) eine persistente Datei, die nach dem
Ende des Prozesesse innerhalb dieses Runtimemoduls wieder gelöscht wird vom
Runtimesystem/Daemon.
Ehm. Du weisst schon, was tmpfile() (abhängig von der libc) macht?
Alle, die was anderes begaupten, fprdere ich zum Duell. Meine Waffe
ist tmpfile() von C *ggg*
Das hier ist tmpfile() bei der glibc:
FILE *
tmpfile (void)
{
error_t err;
file_t file;
int fd;
FILE *f;
/* Get a port to the directory that will contain the file. */
const char *dirname = __secure_getenv ("TMPDIR") ?: P_tmpdir;
file_t dir = __file_name_lookup (dirname, 0, 0);
if (dir == MACH_PORT_NULL)
return NULL;
/* Create an unnamed file in the temporary directory. */
err = __dir_mkfile (dir, O_RDWR, S_IRUSR | S_IWUSR, &file);
__mach_port_deallocate (__mach_task_self (), dir);
if (err)
return __hurd_fail (err), NULL;
/* Get a file descriptor for that port. POSIX.1 requires that streams
returned by tmpfile allocate file descriptors as fopen would. */
fd = _hurd_intern_fd (file, O_RDWR, 1); /* dealloc on error */
if (fd < 0)
return NULL;
/* Open a stream on the unnamed file.
It will cease to exist when this stream is closed. */
if ((f = __fdopen (fd, "w+b")) == NULL)
__close (fd);
return f;
}
Wie du siehst, wird auch hier einfach nur eine Datei angelegt.
Grüße,
CK
Das Sein entsteht aus dem Nicht-Sein.