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şlevinefflush
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ındanfflush
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 fopen
ANSI 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ü