2015-10-01 16 views
6

D dizinleri, düzenli dosyalar ve sembolik bağlantılar için bir dosya sistemi aramak için C dilinde bir okul ödevi yazabilirim. Şimdilik öğeler hakkında bilgi almak için lstat kullanıyorum.lstat fstat ve stat arasındaki farklar

lstatfstat ve stat sistem çağrıları arasındaki fark nedir?

+5

Tam olarak bu [manuel] (http://man7.org/linux/man-pages/man2/stat.2.html) diyor. –

+2

İnsanların, en azından – KevinDTimm

+2

sormadan önce biraz çaba göstermelisiniz. Lütfen RTFM'ye cesaret edin. – alk

cevap

31

Ben de stat vs lstat vs fstat arıyordum ve zaten bu soruya bir cevabı var olmasına rağmen, böyle olsun biçimlendirilmiş görmek istiyorum:

lstat() yol adı bir ise dışında stat() özdeştir sembolik link, daha sonra linkin kendisi hakkında bilgi verir, başvurulan dosyasını değil.

fstat() bilgi dosyası açıklayıcısı fd ile belirtilen alınacak olan yaklaşık dosyanın dışında stat() özdeştir.

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

1

aşağıdaki Googling: sayfada listelenen http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

Aşağıdaki basit cevabı: sağlanan ilk bağlantıyı bu farklılıkları açıklayan bir adam sayfası

lstat v fstat v stat stat() istatistikleri dosya yolu ile işaret ve buf doldurur. lstat(), bir sembolik bağ ise, bağlantının kendisi başvurulan dosya değil, statüde olması dışında, stat() ile aynıdır. fstat(), stat() dosyasının dosya tanıtıcısı fd tarafından belirtilmesi dışında, stat() ile aynıdır.

0

Benzerlik: Her ikisi de bağımsız değişken olarak dosya adını alır.

Fark: Dosya adı sembolik bir bağlantı olduğunda, stat(), bağlantıyla ilişkilendirilmiş hedef dosyayla ilgili öznitelikleri veya inode bilgilerini döndürür. Oysa lstat() sadece linkin niteliklerini döndürür.

Stat() ile lstat() için manpage dosyasına bakın.