アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語であるプログラムを作成中なんですが、一定時間たつとプログラムをリセットしてまた最初からプログラムを実行するような感じにしたいのですが、わからず困っています。
例えば、

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

A 回答 (3件)

期待している回答でないかもしれませんが。

。。
--

time_t start,stop;
n=(実行回数);
while(n--){
time(&start);
time(&stop);
while(difftime(stop,start)<100.0){ // 100秒たったらループを抜ける
time(&stop);
}

//--
// (実行したいプログラム)
//--

}

--
精度は秒だったかもしれません
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/02 16:05

sleep() という関数があれば sleep(100); でできますが、この関数は環境によってはないかも知れません(UNIX 系 OS なら多分あります。

他のOSではあるかどうか分かりませんが、何らかの方法でエミュレートして実現されている可能性はありますので調べてみましょう)。

自分で time() 関数の結果を見ながらループさせてもいいですが、それだとそのプロセスは動きっ放しになるので無駄が大きいです。MS-DOSのようなマルチタスクOSではないOSの場合はそれしか方法ないかも知れませんが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/02 16:05

localtime()でも何でも調べれば有ります。



まあ、そういう風に動作させるなら、一定時間ループして監視するプログラムか、どっかからの時間通知で動作するような形式で作る事になりそうな感じですけど。

sleep関数やwait関数入れないと、間違い無く無限ループです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/02 16:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!