Commit-to-disk sabitleri

Microsoft'a Özgü

Sözdizimi

#include <stdio.h>

Açıklamalar

Bu Microsoft'a özgü sabitler, açık dosyayla ilişkili arabelleğin işletim sistemi arabelleklerine mi yoksa diske mi boşaltılacağını belirtir. Mod, okuma/yazma erişimi türünü belirten dizeye eklenir ("r", "w", "a", "r+", "w+", "a+").

Diske işleme modları aşağıdaki gibidir:

  • c

    Belirtilen arabelleğin yazılmamış içeriğini diske yazar. Bu diske işleme işlevi yalnızca veya _flushall işlevine fflush yapılan açık çağrılarda gerçekleşir. Bu mod, hassas verilerle ilgilenirken kullanışlıdır. Örneğin, programınız veya _flushallçağrısından fflush sonra sonlandırıldıysa, verilerinizin işletim sisteminin arabelleklerine ulaştığından emin olabilirsiniz. Ancak, c seçeneğiyle bir dosya açılmadığı sürece, işletim sistemi de sonlandırılırsa veriler diske asla aktarılamayabilir.

  • n

    Belirtilen arabelleğin yazılmamış içeriğini işletim sisteminin arabelleklerine yazar. İşletim sistemi verileri önbelleğe alabilir ve diske yazmak için en uygun zamanı belirleyebilir. Birçok koşulda, bu davranış verimli program davranışı sağlar. Ancak, verilerin saklanması kritikse (banka işlemleri veya uçak bileti bilgileri gibi) c seçeneğini kullanmayı göz önünde bulundurun. N modu varsayılandır.

Not

c ve n seçenekleri için fopenANSI standardının bir parçası değildir, ancak Microsoft uzantılarıdır ve ANSI taşınabilirliğinin istendiği yerde kullanılmamalıdır.

Var olan kodla diske işleme özelliğini kullanma

Varsayılan olarak, veya _flushall kitaplık işlevlerine yapılan fflush çağrılar, işletim sistemi tarafından tutulan arabelleklere veri yazar. İşletim sistemi, verileri diske yazmak için en uygun zamanı belirler. Çalışma zamanı kitaplığının diske işleme özelliği, kritik verilerin işletim sisteminin arabellekleri yerine doğrudan diske yazıldığından emin olmanıza olanak tanır. Bu özelliği, nesne dosyalarını COMMODE.OBJ bağlayarak varolan bir programa yeniden yazmadan verebilirsiniz.

Sonuçta elde edilen yürütülebilir dosyada, arabelleğin içeriğini doğrudan diske yazmak için çağrılar fflush ve tüm arabelleklerin içeriğini diske yazmak için _flushall çağrılar. Bu iki işlev, COMMODE.OBJ etkilenen tek işlevlerdir.

END Microsoft'a Özgü

Ayrıca bkz.

Akış G/Ç
_fdopen, _wfdopen
fopen, _wfopen
Genel sabitler