PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lstat verhalten



panthip
07-09-2005, 05:14
Ist es richtig, wenn ich mittels lstat() und S_ISDIR() eine Datei untersuche, es folgende Faelle geben kann:

Datei ist kein symbolischer Link und kein Verzeichnis.
Datei ist kein symbolischer Link und ein Verzeichnis.
Datei ist ein symbolischer Link und damit kein Verzeichnis.

Also anders gesprochen, wenn ich lstat() und S_ISDIR() auf eine Datei anwende, kann ich sicher sein, dass nur die tatsaechlichen Verzeichnisse gefunden werden.

Ich will naemlich sicherstellen, dass keinen symbolischen links gefolgt wird.

SeeksTheMoon
07-09-2005, 10:06
Datei ist kein symbolischer Link und kein Verzeichnis.
den Fall gibt es


Datei ist kein symbolischer Link und ein Verzeichnis.
den Fall gibt es


Datei ist ein symbolischer Link und damit kein Verzeichnis.
Aus Anwenderebene stimmt das nicht, da ein Symlink im Gegensatz zu einem Hardlink auf ein Verzeichnis zeigen kann.
Ob lstat und s_isdir diese Folgerung jedoch so erlauben wie geschrieben, weiß ich nicht.

panthip
07-09-2005, 22:33
Meine Behauptung begruendet sich auf einen kleinen Test und der hat oben angegebene Faelle hervorgebracht.

Im Gegensatz zu stat() untersucht lstat() naemlich tatsaechlich den Link und nicht den Hardlink auf den er verweist.

Ich wuerde aber gern wissen, ob jemand mehr Erfahrung damit hat und meinen Versuch bestaetigen kann oder widerlegen.