2015-10-01 3 views
6

Ich schreibe eine Schulaufgabe in C, um ein Dateisystem nach Verzeichnissen, regulären Dateien und Symlinks zu durchsuchen. Für jetzt benutze ich lstat, um Informationen über Artikel zu erhalten.Unterschied zwischen lstat fstat und stat in C

Also, was ist der Unterschied zwischen lstatfstat und stat Systemaufrufe?

+5

Es ist genau das, was [das Handbuch] (http://man7.org/linux/man-pages/man2/stat.2.html) sagt. –

+2

Komm schon Leute, du musst wenigstens etwas Mühe machen bevor du fragst – KevinDTimm

+2

Bitte wage dich zu RTFM. – alk

Antwort

31

ich auch für stat vs lstat vs fstat gesucht und obwohl es bereits eine Antwort auf diese Frage ist, würde ich es so formatiert, um zu sehen wie:

lstat() zu stat() identisch ist, mit der Ausnahme, dass, wenn ein Pfad ist symbolische Link, dann gibt es Informationen über den Link selbst zurück, nicht die Datei , auf die es sich bezieht.

fstat() ist identisch mit stat(), mit der Ausnahme, dass die Datei über die Informationen abgerufen werden soll, wird durch den Dateideskriptor fd angegeben.

http://man7.org/linux/man-pages/man2/stat.2.html

1

googeln folgende: lstat v fstat v stat

das erste Glied ein Mann Seite vorgesehen ist, die diese Unterschiede beschrieben: http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

auf der Seite aufgelistet ist die folgende einfache Antwort: stat() Statistiken Die Datei zeigt auf den Pfad und füllt den buf aus. lstat() ist identisch mit stat(), außer dass, wenn path ein symbolischer Link ist, der Link selbst stattzugegeben ist, nicht die Datei, auf die er verweist. fstat() ist identisch mit stat(), nur dass die zu stat- zende Datei durch den Dateideskriptor fd angegeben wird.

0

Ähnlichkeit: Beide nehmen Dateinamen als Argumente.

Unterschied: Wenn der Dateiname ein symbolischer Link ist, gibt stat() die Attribute oder Inode-Informationen über die mit dem Link verknüpfte Zieldatei zurück. Während lstat() die Attribute nur der Verbindung zurückgibt.

Siehe die Hilfeseite für stat() vs lstat().