認可到磁碟常數
Microsoft 特定的
語法
#include <stdio.h>
備註
這些 Microsoft 特定的常數,會指定是否要將與開啟檔案相關聯的緩衝區排清至作業系統緩衝區或磁碟。 該模式會包含在指定讀取/寫入存取類型的字串中 ("r"、"w"、"a"、"r+"、"w+"、"a+")。
認可到磁碟模式如下所列:
c
將指定緩衝區的未撰寫內容寫入磁碟。 此認可到磁碟功能只會在 對 或函式的
_flushall
明確呼叫fflush
時發生。 此模式在處理敏感性資料時非常有用。 例如,如果程式在呼叫fflush
或_flushall
之後終止,則可以確定您的資料已抵達作業系統的緩衝區。 不過,在作業系統也終止的情況下,除非檔案是以 c 選項開啟,否則該資料可能永遠都不會抵達磁碟。n
將指定緩衝區的未撰寫內容寫入作業系統的緩衝區。 作業系統可以快取資料,然後判斷寫入磁碟的最佳時間。 在許多情況下,此行為將會是很有效率的程式行為。 不過,如果資料的保留非常重要 (例如銀行交易或機票資訊),請考慮使用 c 選項。 預設是 n 模式。
注意
c 與 n 選項並非 fopen
的 ANSI 標準之一部分,而是 Microsoft 延伸模組,但在需要 ANSI 可攜性時不應使用。
搭配現有程式代碼使用認可到磁碟功能
根據預設, fflush
呼叫 或 _flushall
連結庫函式會將數據寫入作業系統所維護的緩衝區。 作業系統會判斷實際將資料寫入磁碟的最佳時間。 執行階段程式庫的認可到磁碟功能可讓您確保重要資料會直接寫入至磁碟,而不是寫入作業系統的緩衝區。 您可以透過將現有程式的物件檔案與 COMMODE.OBJ 連結,在不用重新撰寫該程式的情況下將此功能提供給它。
在產生的可執行檔中,對 fflush
的呼叫會將緩衝區的內容直接寫入磁碟,而對 _flushall
的呼叫則會將所有緩衝區的內容寫入磁碟。 這兩個函式是唯一會受到 COMMODE.OBJ 影響的函式。
END Microsoft 特定的