close(<fd>)
numaralı telefonu arayarak, fiziksel ortama eşitleme yapmak için fsync()
otomatik olarak yapar mı?Linux'ta yakın() fsync() öğesini çağırır mı?
cevap
Yapmıyor. close()
numaralı telefonu çağırmak, OS işletim sisteminin yazımları ertelemiş olabileceğinden, içeriğin diskte olduğunu garanti ETMEZ.
Yan not olarak, her zaman close()
dönüş değerini kontrol edin. Bu noktaya kadar ertelenmiş hatalardan haberdar edersiniz. Ve içeriğin diskte olduğundan emin olmak istiyorsanız, her zaman fsync()
'u arayın ve dönüş değerini de kontrol edin.
Akılda tutulması gereken bir şey destek deposunun ne olduğudır. Dahili yazma erteleme yapabilen cihazlar ve bazı durumlarda içerik kaybolabilir (daha yeni depolama ortamı aygıtları genellikle bunu önlemek için süper kapasitörlere veya bu özelliği devre dışı bırakma yollarına sahip olsa da).
sayılı
man 2 close
itibaren Başarılı yakın çekirdek yazıyor ertelemektedir olarak veri başarıyla diske kaydedilmiş olmuştur garanti etmez. , bir dosya sistemi akış kapatıldığında arabellekleri yıkamak için yaygın değildir. Verilerin fiziksel olarak saklanan fsync (2) olduğunu olduğundan emin olmanız gerekir. (Bu noktada, disk donanım bağlı olacaktır.)man 2 close
itibaren
: Çekirdek yazıyor defers olarak
Başarılı yakın veriler başarıyla diske kaydedilmiş olmuştur garanti etmez . Bir dosya sistemi, akış kapalı olduğunda arabellekleri yıkamak için ortak değildir. Verilerin fiziksel olarak saklandığından emin olmanız gerekiyorsa fsync (2) 'yi kullanın. (Bu noktada disk sabit eşyalar bağlıdır.)
sorunuza gelince, HAYIR, close()
fsync()
close
sadece süreci ve uzaklaşmaların için dosya tanıtıcı kapatır garanti etmez İşlemle ilişkili tüm kayıt kilitleri.
- 1. 'Senkronizasyon' ve 'syncfs' sistemi, haritayı FUSE'nin 'fsync' çağrılarıyla mı çağırıyor?
- 2. Json.Net, listenin serileştirilmesi sırasında property getter öğesini çağırır, bu da
- 3. jquery-En yakın div kimliğini aldınız mı?
- 4. Yaratma işlevi çağırır
- 5. çağırır pytest sadece
- 6. hızlandırma Yansıma çağırır C#/.NET
- 7. django.db.connection.queries öğesini temizlemenin bir yolu var mı?
- 8. Etkinlikte jQuery'yi kullanarak tıklama öğesini aldınız mı?
- 9. , linux fsync dosyasının xattr dosyasını senkronize eder mi?
- 10. Tkinter: olayı ana döngüde çağırır
- 11. C++ açık şablon yapıcısını çağırır
- 12. java'dan başka bir kurucu çağırır.
- 13. En yakın çeyreğe en yakın çeyreğe nasıl taşınır
- 14. Yuvarlama en yakın beş
- 15. Yakın ve uzak işaretçiler
- 16. jQuery yakın sınıf seçicisi
- 17. Python'da yinelemeli işlevlerin bir listesini çağırır mısınız?
- 18. Yuvarlatılmış en yakın tam sayı
- 19. yakın komşu Arama: Python
- 20. liveCycle force yakın belge
- 21. sözdizimi hatası yakın
- 22. En yakın zaman damgası
- 23. yanlış sözdizimi yakın '-' 2
- 24. Açısal 2 yazı biçimi javascript işlevini çağırır
- 25. C# tablaya yakın (msn messenger gibi)
- 26. Python Selenyum add_extensions yakın ekranı
- 27. javascript - en yakın tam sayıya
- 28. Programlı olarak yakın kapat penceresi
- 29. jquery: en yakın ('h3') seçici?
- 30. Neden WriteFile ReadFile'ı çağırır ve nasıl önleyebilirim?
'fsync()' * çağrısı, aynı nedenlerden dolayı (donanımda yazılanları ertelemiş olabilir) ya * yoktur. –
@ FrédéricHamidi 'fsync()', yazım hatalarını depolama koşullarına zorlar (hangi durumlarda fsync diskteki içeriği garanti etmez) (bazı durumlarda kontrol edilemeyen tek hatalar ve donanım ertelenmiş yazılar hariç)? –
Disk denetleyicisinde başka bir önbellek katmanı olabilir (ve genellikle), yani 'fsync()' bile verilerinizin gerçek donanıma yapmasını garanti edemez. Close() için [man page] (http://linux.die.net/man/2/close) bunu belirtiyor. –