On Don, 19 Jul 2001 at 13:36 (+0200), Bernd Brodesser wrote: [...]
Was ist an dem alten Vorgehen zu bemängeln, daß mktemp das XXXXX in VORGABEXXXXX durch a$$ ersetzt? Wenn das schon existierte, dann machte es daraus ein b$$ usw. Dieses Verhalten hatten HP_UX Maschinen vor ca. 10 Jahren.
Neben den (sicher ziemlich seltenen) Angriffspunkten für einen böswilligen Benutzer, wie sie David genannt hat, sind a$$ bzw. b$$ sehr kurz und damit ist die Wahrscheinlichkeit, dass diese Dateien existieren, ziemlich hoch. Damit kommt man (bei Maschinen, auf denen sich ein reges Tierleben in /tmp abspielt) sehr schnell in die Situation, dass ein neuer mktemp sehr viele Dateinamen abklappern muss, um einen freien zu finden (mir fällt gerade auf, dass dies bei allen systematischen, also nach einer Reihenfolge vorgehenden Algorithmen so ist - unabhängig von der Länge des Dateinamens). Und das ist der Performance nicht zuträglich. Ein mehr oder weniger zufällig arbeitender Mechanismus findet schneller einen freien Namen. Die Anzahl der Versuche bei einem systematischen Algorithmus kannst Du ganz einfach ausrechnen: Jeder neue mktemp braucht einen Schritt mehr (es sei denn, inzwischen sind wieder ein paar Dateien gelöscht worden). Jan