2012-02-05 17 views

答えて

2

kflushd AFAIKは、保留中のI/Oを対応するデバイスにメモリに書き出す処理を行います。保留中のI/Oをフラッシュする場合は、常にflush、fflush、またはsyncを呼び出してI/Oデバイスへの書き込みを強制することができます。

あなたのコードから呼び出すには、私が言及した呼び出しのうちの1つを使用します(ただし、もう1つは私が忘れているかもしれません)。

1

kflushdのようなカーネルプロセスは、カーネルが独自に起動します(forkで開始されるinitプロセスの子孫ではありません)。カーネルのニーズにのみ存在します。ユーザアプリケーションは、カーネルが独自のカーネルプロセスの助けを借りて実装したカーネルによって提供される機能を必要とするため、目に見えないものを必要とするかもしれませんが、積極的に使用しません。

fflush(3)ライブラリ関数を適切に使用することをお勧めします(関連するwrite(2)システムコールを作成するだけです)。

fsync(2)と関連するシステムコールを使用することができます。

ネットワーキングに関しては、興味があるかもしれませんNagle's algorithmthis answerを参照してください。

関連する問題