alarm()
送信される2つの異なる警告をどのように処理しますか?
A=5
たとえば、andがある場合を使用せずに数秒後に1つのタスクを実行し、数秒後に別のタスクを実行するようにB=10
プログラムに指示することはできますか?A
B
sleep()
この質問をする主な目的は、同じプログラムで2つの異なる警告を処理する方法を理解することです。
答え1
あなたはそれらを一度に1つずつ処理します。まず数秒間アラームを設定しますA=5
。アラームが鳴った場合は、目的の操作を実行してから数秒間別のB-A = 10-5 = 5
アラームを設定してください。点火後は別の作業を行ってください。
または、通常、時間のあるタスクをソートされたリストに保存し、最初のタスクが完了するまで残りの時間に対して常にアラームをプログラムするようにします。
より一般的には、同時に他のタスクを実行できるため、ある種のイベントループがある可能性があります。この場合、イベントループ(おそらく呼び出し)でタイムアウトをselect()
代わりに使用alarm()
し、メインプログラムでタイムアウト操作を実行できます。これにより、他のタスクの実行中に警告が発生しても問題はなく、タスクを混乱させる同時処理はありません。