0

fsyncを使用して、SDカードにできるだけ早くファイルを書き込もうとしました。ただし、ファイルが SD カードに物理的に書き込まれる前に fsync が実際にブロックすることはありません。実際にSDカードにデータが入るまで5~6秒ほどかかるようです。ただし、commit = 1 または sync オプションを使用してファイル システム (ext3、ext4 を試しました) をマウントすると、データは再起動後 1 秒で安全になります。私の質問は、パーティション全体のソリューションに頼らずにフラッシングを達成する方法があるということですか? Linux カーネル 2.6.37 を使用しています。ありがとうございました

4

1 に答える 1

0

コンテンツが SD カードに書き込まれていることを確認したい場合は、プログラムを終了する前に --flushbufs を指定して blockdev を呼び出す必要があります。書き込みプロセスのベンチマークを行いたい場合は、書き込みのたびにこれを呼び出すことができます。

/sbin/blockdev --flushbufs $dev
于 2014-09-24T04:24:17.767 に答える