2015-10-01 7 views
6

Sto scrivendo un compito scolastico in C per cercare attraverso un file system directory, file regolari e collegamenti simbolici. Per ora io uso lstat per ottenere informazioni sugli oggetti.Differenza tra lstat fstat e stat in C

Quindi, qual è la differenza tra le chiamate di sistema lstatfstat e stat?

+5

È esattamente ciò che [il manuale] (http://man7.org/linux/man-pages/man2/stat.2.html) dice. –

+2

Dai la gente, devi almeno fare un po 'di sforzo prima di chiedere – KevinDTimm

+2

Ti preghiamo di osare su RTFM. – alk

risposta

31

Sono stato anche alla ricerca di stat vs lstat vs fstat e anche se c'è già una risposta a questa domanda, mi piacerebbe vederlo formattato così:

lstat() è identica a stat(), tranne che se è un percorso simbolico link, quindi restituisce informazioni sul collegamento stesso, non sul file a cui si riferisce.

fstat() è identica a stat(), se non che il file su cui informazioni devono essere recuperate viene specificato dal descrittore di file fd .

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

1

googling il seguente: lstat v fstat v stat

il primo collegamento fornito è una pagina di manuale che descrive queste differenze: http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

elencati sulla pagina è la seguente risposta semplice: stat() statistiche il file puntato da path e riempie buf. lstat() è identico a stat(), con la differenza che se path è un collegamento simbolico, il collegamento stesso è stat-ed non il file a cui fa riferimento. fstat() è identico a stat(), ad eccezione del fatto che il file da statare è specificato dal descrittore di file fd.

0

somiglianza: entrambi prendono il nome del file come argomenti.

Differenza: ogni volta che il nome file è un collegamento simbolico, stat() restituisce gli attributi o le informazioni inode sul file di destinazione associato al collegamento. Considerando che, lstat() restituisce gli attributi solo del collegamento.

Fare riferimento alla pagina di manuale per stat() vs lstat().