我正在研究運行linux的智能相機。我從相機流媒體軟件捕捉圖像並將圖像寫入SD卡(隨相機附帶)。爲了編寫單獨的JPEG圖像,我使用了fopen和fwrite C函數。爲了同步磁盤寫操作,我使用fflulsh(指針)清空緩衝區並將數據寫入SD卡。但它看起來沒有效果,因爲寫入操作使用系統存儲器,每次寫入操作後存儲器都會減少。我還將低級別的打開和寫入功能與fsync(filedesc)結合使用,但它也沒有效果。C中的同步寫入操作
緩衝區的沖洗發生,只有當我卸載SD卡,然後釋放內存。如何禁用此緩存寫入而不是SD卡寫入?或者如何強制數據同時寫入SD卡而不是使用系統內存?
'FSYNC(2)'應該做你想要什麼,除非有SD卡驅動程序中的錯誤,或者你有上啓用了寫入緩存。 –