sync
Linuxが特定のデバイスにアクセスする方法はありますか?
これは、無関係なRAIDアレイでビデオ処理ジョブのキューへの書き込みが完了するのを待たずにUSBサムドライブに書き込みが行われたことを確認するために使用されます。
これを達成できるシステムコール/引数の組み合わせがあれば、おそらく簡単なCラッパーを書くことができます。これを行うことができるUbuntuパッケージを知っている人がいれば良いでしょう。
答え1
できない同期(2)まったく意味のないデバイスです。同期中です。ファイルシステム(インストールされたデバイスではありません)syncfs
または全体ページキャッシュそしてsync
。
これsync(2)
システムコールと言う同期(1)注文する。
(私はそれを行う一般的なコマンドを知りませんsyncfs
)
ただし、Linux固有のコマンドを使用してファイルシステムのバッファをフラッシュすることはできます。ファイルシステム同期(2)システムコール。したがって、これを達成するには、単純なCラッパーを作成してください。
開封のためファイル記述子、あなたが利用できる同期(2)またはfdatasync
ファイルシステムをアンマウントすると、通常は更新されます。
答え2
不要な直接I / Oの使用を検討してくださいsync
。一部のファイルシステムでは、マウントオプション()を介して強制的に使用できますdio
。