我正在研究运行linux的智能相机。我从相机流媒体软件捕捉图像并将图像写入SD卡(随相机附带)。为了编写单独的JPEG图像,我使用了fopen和fwrite C函数。为了同步磁盘写操作,我使用fflulsh(指针)清空缓冲区并将数据写入SD卡。但它看起来没有效果,因为写入操作使用系统存储器,每次写入操作后存储器都会减少。我还将低级别的打开和写入功能与fsync(filedesc)结合使用,但它也没有效果。C中的同步写入操作
缓冲区的冲洗发生,只有当我卸载SD卡,然后释放内存。如何禁用此缓存写入而不是SD卡写入?或者如何强制数据同时写入SD卡而不是使用系统内存?
'FSYNC(2)'应该做你想要什么,除非有SD卡驱动程序中的错误,或者你有上启用了写入缓存。 –