1

時間間隔の変更を更新して制御したい。ほとんどの人は、time.h から時間を絶えずポーリングし、サイクルを浪費する無限ループしかありません。システムにあまり影響を与えずに時計を変更する方法はありますか? 私は c/c++ を使用しており、Linux ライブラリのみを使用して手動でこれを行う方法を本当に知りたいと思っています。ほとんどのプログラムは、時間の概念を必要とします。

システム クロックの更新の通知を受け取りたい。リアルタイムで応答する科学アプリをやろうとしています。Sleep() などでは、ステートメンの実行から始まる時間遅延のみを指定できます。Localtime() と c ヘッダーから時間を返す文字列は、実行された特定の時間のみを提供します。今回使ったら遅すぎる、ナノ秒経過しすぎた。

4

2 に答える 2

1

time(7)のマニュアル ページを読んで、システム コールgettimeofday(2)setitimer(2)clock_gettime(2)timer_create(2)などの使用方法と、関連するライブラリ関数 ( strftimelocaltime、 ...)を理解する時間に。

タイマー イベントを受信するアプリケーションをコーディングする場合は、タイマーやSIGALRMシグナルなどについて学習します。最初のシグナルを読む(7)

しかし、高度な Unix プログラミング高度な Linux プログラミングなどを読んで、 syscallとは何かを理解する必要があります。

ポーリングまたは待機のためにpoll(2)を使用したい場合があります。

于 2012-09-10T01:43:22.147 に答える
0

移植性があり、他のほとんどのタスクと互換性がある最も基本的なアプローチはselect. 一定の時間が経過するか、ファイルが I/O の準備が整うまでスリープします。これにより、次のタスクが発生する前にタスク リストを更新することができます。中断機能が必要ない場合は、sleep(またはusleep) を使用できます。

于 2012-09-10T02:27:57.773 に答える