• ベストアンサー

一定時間たつと、リセットしたい

C言語であるプログラムを作成中なんですが、一定時間たつとプログラムをリセットしてまた最初からプログラムを実行するような感じにしたいのですが、わからず困っています。 例えば、 if (100秒たったら) { 配列に入ってるデータなどをリセットして、 最初から実行。 } という感じにしたいと思ってます。要するに、プログラムを実行してから、時間を数え、100秒たったらまた1から実行しなおすという風にしたいと考えています。 そういう時間を数える関数などはあるのでしょうか? どなたかご教授おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ske6
  • ベストアンサー率50% (1/2)
回答No.2

期待している回答でないかもしれませんが。。。 -- time_t start,stop; n=(実行回数); while(n--){ time(&start); time(&stop); while(difftime(stop,start)<100.0){ // 100秒たったらループを抜ける time(&stop); } //-- // (実行したいプログラム) //-- } -- 精度は秒だったかもしれません

zunzunzunzunzun
質問者

お礼

お礼がおくれて申し訳ありません。ありがとうございました。なんとかなりそうです。

その他の回答 (2)

回答No.3

sleep() という関数があれば sleep(100); でできますが、この関数は環境によってはないかも知れません(UNIX 系 OS なら多分あります。他のOSではあるかどうか分かりませんが、何らかの方法でエミュレートして実現されている可能性はありますので調べてみましょう)。 自分で time() 関数の結果を見ながらループさせてもいいですが、それだとそのプロセスは動きっ放しになるので無駄が大きいです。MS-DOSのようなマルチタスクOSではないOSの場合はそれしか方法ないかも知れませんが。

zunzunzunzunzun
質問者

お礼

お礼がおくれて申し訳ありません。ありがとうございました。なんとかなりそうです。OSはLinuxなのでsleepは使えました。ありがとうございました

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

localtime()でも何でも調べれば有ります。 まあ、そういう風に動作させるなら、一定時間ループして監視するプログラムか、どっかからの時間通知で動作するような形式で作る事になりそうな感じですけど。 sleep関数やwait関数入れないと、間違い無く無限ループです。

zunzunzunzunzun
質問者

お礼

お礼がおくれて申し訳ありません。ありがとうございました。なんとかなりそうです。

関連するQ&A