On Mon, 16 Jul 2001, Jan Trippler wrote:
On Mon, 16 Jul 2001 at 19:39 (+0200), David Haller wrote:
Ich kann's mir mal wieder nicht verkneifen...
Das habe ich schon langsam vermisst ;-)
Ach? *g* Kann ich das dann oefter machen?
On Mon, 16 Jul 2001, Jan Trippler wrote:
# eigener Programmname prg=`basename $0` [..] # temp. Datei tmp_datei=/tmp/datei.$$
Also, wenn wir schon $prg habe, dann waere schon ein:
tmp_datei="/tmp/${prg}.$$"
$prg kam hinterher dazu, als ich feststellte, dass die Fehlermeldungen schöner aussehen könnten. Du hast aber recht - der Name ist so (im Falle z. B. von Programmabbrüchen) besser zu identifizieren und die Gefahr einer Doppelnutzung ist geringer.
Ack. Naja, Hartkodieren kann man's auch ;)
tmp_datei="`mktemp /tmp/${prg}.$$.XXXXXX`" || exit 1
Ja, noch schicker ;-) Aber vielleicht für ein "Zu Hause System mit einem Benutzer ohne allzuviel Dienste" mit Kanonen nach Spatzen geschossen? Bei mir ist in tmp nicht viel los - auch nicht auf meinem Server. Grundsätzlich ist mktemp natürlich vorzuziehen. Ich sollte mich eigentlich auch dazu zwingen, ihn konsequent einzusetzen.
Naja, ich selbst gehe mal eher davon aus, dass ein ${prg}.$$
relativ sicher ist, denn dass eine PID mehrfach vergeben wird
waere eigenartig. ABER: Da muesste man dann eigenlich darauf
testen, ob die Datei schon existiert (von frueheren Aufrufen, die
PIDs beginnen ja nach defaultmaessig 32k wieder bei 2 (bzw. der
naechsten freien, was besonders bei laengeren Compilierorgien zu
beobachten ist ;))) und diese dann ggfs. loeschen oder sonstwas...
Insofern hat mktemp, selbst auf Einzeluser-Kiste wie's meine und
deine sind seine Berechtigung, denn da ist die Pruefung auf einen
Dateinamenskonflikt bereits "drin" :)