Strace meldet falschen relativen Pfad?

368
user461984

Ich benutze es, straceum Berichte openund chdirSystemaufrufe zu melden, und ein Teil seiner Ausgabe lautet:

6791 chdir("//etc") = 0 6791 open("etc/fstab", O_RDONLY) = 3 

Das macht keinen Sinn. Zuerst steigen wir in das /etcVerzeichnis ab, dann versucht derselbe Prozess, die relative Datei etc/fstabvon dort zu öffnen . Der Aufruf ist erfolgreich, es gibt jedoch keine solche Datei /etc/etc/fstab. Es gibt nur die Datei /etc/fstab.

Warum meldet sich strace etc/fstabund nicht /etc/fstabwie es soll?

0

1 Antwort auf die Frage

0
user461984

Nun ja ... anscheinend erlaubt POSIX einen führenden doppelten Schrägstrich in Pfadnamen. Es bedeutet nicht das Root-Verzeichnis, wie man meinen würde, sondern ist implementierungsabhängig. Ich denke, in diesem Fall //etcist das wirklich dasselbe /. Ich weiß, das ist verrückt, aber das ist das Einzige, was ich mir vorstellen kann.