2

ユーザー空間で使用できる linux/delay.h の udelay のような関数の提案はありますか?

ユーザー空間から、数十ミリ秒ごとにイベントを生成したいと思います。精度はそれほど重要ではありませんが、できるだけ近づけたいと思います。コンテキスト切り替えのオーバーヘッドのため、usleep などは機能しません。現在、CLOCK_MONOTONICクロックでclock_gettimeを使用するビジー待機ループがあり、ループを開始する前の時間と現在の時間を常に比較し、経過したマイクロ秒数が経過すると戻ります。usleep を使用するよりもはるかにうまく機能しますが、カーネル コードを記述せずに (またはリアルタイム Linux に切り替えずに) より良い結果を得ることができますか? ありがとう。

4

1 に答える 1

1

select(2)タイムアウトを使用し、FD を使用しないことは、まともな代替手段である必要があります。呼び出す前に毎回タイムアウトを初期化することを忘れないでください。

于 2012-08-18T21:06:29.943 に答える