Diferența dintre lstat fstat și stat în C (Programare, C, Stat, Fstat)

uzr a intrebat.

Scriu o temă școlară în C pentru a căuta într-un sistem de fișiere directoare, fișiere obișnuite și legături simbolice. Deocamdată folosesc lstat pentru a obține informații despre elemente.

Deci, care este diferența dintre lstat fstat și stat apelurile de sistem?

Comentarii

  • Este exact ceea ce manualul spune manualul. –  > Por Kerrek SB.
  • Haideți, oameni buni, trebuie măcar să depuneți un efort înainte de a întreba…  > Por KevinDTimm.
  • Acesta este acum primul rezultat pe Google pentru această întrebare. Chiar nu cred că ar fi atât de îngrozitor să răspunzi la ea. Din fericire, cineva a făcut-o. –  > Por mpen.
3 răspunsuri
user619271

Și eu am căutat stat vs lstat vs fstat și, deși există deja un răspuns la această întrebare, aș vrea să-l văd formatat așa:

lstat() este identic cu stat(), , cu excepția faptului că, dacă pathname este o legătură simbolică, atunci returnează informații despre legătura în sine, nu despre fișierul la care se referă.

fstat() este identic cu stat(), , cu excepția faptului că fișierul despre care trebuie recuperate informații este specificat printr-un descriptor de fișier (în loc de un nume de fișier).

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

bharat nc

Similaritate: Ambele acceptă ca argumente numele de fișier.

Diferență: Ori de câte ori numele fișierului este o legătură simbolică, stat() returnează atributele sau informațiile despre inode despre fișierul țintă asociat cu legătura. În schimb, lstat() returnează atributele numai pentru legătura respectivă.

Consultați pagina de manual pentru stat() vs lstat().

Bryan S.

Căutați pe Google următoarele: lstat v fstat v stat

primul link furnizat este o pagină de manual care descrie aceste diferențe: http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

listat pe pagină este următorul răspuns simplu: stat() stats the file pointed to by path and fills in buf.lstat() este identic cu stat(), cu excepția faptului că, dacă path este o legătură simbolică, atunci legătura însăși este stat-ed, nu fișierul la care se referă.fstat() este identic cu stat(), cu excepția faptului că fișierul care urmează să fie stat-ed este specificat de descriptorul de fișier fd.

Tags:, ,