* David Haller schrieb am 18.Jul.2001:
On Die, 17 Jul 2001, Bernd Brodesser wrote:
* David Haller schrieb am 17.Jul.2001:
On Mon, 16 Jul 2001, Jan Trippler wrote:
On Mon, 16 Jul 2001 at 19:39 (+0200), David Haller wrote:
tmp_datei="`mktemp /tmp/${prg}.$$.XXXXXX`" || exit 1
Wenn es nicht funktioniert, dann sollte da aber schon eine Fehlermeldung kommen. Kommt doch sonst nie einer drauf, daß es an der Nichtanlegbarkeit (was für ein Wort ;)) der Tempdatei liegt.
Hast du's getestet? Das ist naemlich Absicht, dass da nur das exit 1 steht:
$ mktemp /root/${prg}.$$.XXXXXX Cannot create temp file /root/.12760.YTRUBd
Ich mache meine Fehlermeldung lieber selber. Was soll der Endanwender mit obiger Meldung anfangen? Der weiß doch gar nicht was ein tempfile ist. Auch hier ist perl flexiebler.
Das $$ ist hier eigentlich nicht mehr nötig. mktemp macht einen Einzigartigen Namen.
Naja, "einzigartig" halt im Rahmen von mkstemp... Und "sicher" ist die in mkstemp verwendete Funktion __gen_tempname nicht...
Mist. Habe ich nicht ausprobiert. Ich kannte mktemp bisher nur so, daß es a$$.tmp oder so ähnlich ausgab. Sollte genau dies schon existieren, so gab es b$$.tmp aus usw. Halte ich für viel vernünftiger. Wichtig ist doch, daß mktemp überprüft, ob der vorgeschlagene Dateiname schon existiert oder nicht. Wenn es das nicht tut, dann ist es nicht zu gebrauchen. Dabei benutze ich mktemp mehrfach. Ich sollte mir mal die Tempfiles angeschaut haben. ;) Hmm, in einen Fall, habe ich es sogar recht häufig gemacht, aber nicht auf dem Namen geachtet. Der $0-Bestandteil hatte zum Auffinden gereicht. ;)) Dann schlage ich sowas wie ${prg}.`date +%s`.$$.tmp vor. Da gibt es so schnell keine doppelte, es sei denn es werden im Prozeß selber mehere tmp angelegt. Die kann ich dann aber hart anders nennen, etwa: $TMP1=$TMPDIR/$PRG.A`date +%s`.$$.tmp $TMP2=$TMPDIR/$PRG.B`date +%s`.$$.tmp $TMP3=$TMPDIR/$PRG.C`date +%s`.$$.tmp Sollte man in einer Schleife Tempdateien anlegen (könnte ja sein, daß man das braucht. ;)) dann wird der Schleifenzähler mit im Namen aufgeführt.
Kryptographisch "sicher" ist das IMO nicht.
Was hat das mit Kryptographie zu tun? Auch wenn es echte Zufallszahlen sind, wird Gleichheit nicht ausgeschlossen.
Naja, ich muss zugeben, dass ich fast lieber noch ein "festes" Namens- schema fuer meine tmp-dateien nehme, z.B. /tmp/${prg}.$$.temp (und dann ein 'trap "rm $temp_file; exit 1" 1 2 3 6 7 13 15' mit einbaue...
Was spricht gegen diese Zeile, wenn Du temp_file vorher wie oben definiert hast, also mit mktemp? Dann kanst Du es genauso in Deiner trap aufnehmen oder später sonstwie wegräumen.
Ja klar, das trap gehoert immer rein.
Was mir an Deiner trap-Zeile auffällt, Du fängst Signal 14 nicht ab. alarm ist doch nett um einen Prozeß zu einem bestimmten Zeitpunkt zu beenden. Gibt es keinen Userbefehl, der alarm verwendet? Ich meine, da gäbe es was. Ich weiß, daß ich es früher mehrfach benutzt habe. Kann aber sein, daß das C war und ich alarm direkt benutzt habe. Bernd -- Probleme mit dem Drucker? Schon die Druckercheckliste beachtet? http://localhost/doc/sdb/de/html/drucker-howto.html | Auch lesenswert: Oder schon das Drucker-HOWTO gelesen? | man lpr file://usr/shar/doc/howto/de/DE-Drucker-HOWTO.txt.gz | Zufallssignatur 3