- ベストアンサー
一定時間たつと、リセットしたい
C言語であるプログラムを作成中なんですが、一定時間たつとプログラムをリセットしてまた最初からプログラムを実行するような感じにしたいのですが、わからず困っています。 例えば、 if (100秒たったら) { 配列に入ってるデータなどをリセットして、 最初から実行。 } という感じにしたいと思ってます。要するに、プログラムを実行してから、時間を数え、100秒たったらまた1から実行しなおすという風にしたいと考えています。 そういう時間を数える関数などはあるのでしょうか? どなたかご教授おねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
期待している回答でないかもしれませんが。。。 -- time_t start,stop; n=(実行回数); while(n--){ time(&start); time(&stop); while(difftime(stop,start)<100.0){ // 100秒たったらループを抜ける time(&stop); } //-- // (実行したいプログラム) //-- } -- 精度は秒だったかもしれません
その他の回答 (2)
- noboru2000
- ベストアンサー率33% (47/140)
sleep() という関数があれば sleep(100); でできますが、この関数は環境によってはないかも知れません(UNIX 系 OS なら多分あります。他のOSではあるかどうか分かりませんが、何らかの方法でエミュレートして実現されている可能性はありますので調べてみましょう)。 自分で time() 関数の結果を見ながらループさせてもいいですが、それだとそのプロセスは動きっ放しになるので無駄が大きいです。MS-DOSのようなマルチタスクOSではないOSの場合はそれしか方法ないかも知れませんが。
お礼
お礼がおくれて申し訳ありません。ありがとうございました。なんとかなりそうです。OSはLinuxなのでsleepは使えました。ありがとうございました
- t_nojiri
- ベストアンサー率28% (595/2071)
localtime()でも何でも調べれば有ります。 まあ、そういう風に動作させるなら、一定時間ループして監視するプログラムか、どっかからの時間通知で動作するような形式で作る事になりそうな感じですけど。 sleep関数やwait関数入れないと、間違い無く無限ループです。
お礼
お礼がおくれて申し訳ありません。ありがとうございました。なんとかなりそうです。
お礼
お礼がおくれて申し訳ありません。ありがとうございました。なんとかなりそうです。