- ベストアンサー
C言語で一定時間待機後、再実行
タイトル通り、プログラムが一定時間経過してから再び起動し始めるソースの書き方が分かりません。 C言語出なければ、APIでもいいのですが、その記述方法もあいまいなので、その辺もご教授下さい。 イメージとしてはSleep()みたいなのを考えています。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 #2 のmuyoshid です。 この手の情報で一番確実なものはやっぱり MSDN でしょう。 そう言う訳で、MSDN の中をちょっと探してみました。 参考URL を見てください。 Windows NT4.0 でやられているのなら、Visual C/C++ とかがInstall されているんですよね? 昔の事で、記憶が定かではありませんが、 Visual C/C++ の中に、Win32API のHELP が 入っていたような気がします・・・。
その他の回答 (4)
- toysmith
- ベストアンサー率37% (570/1525)
「時間経過を待つ」事を優先するのか?「他のスレッドのCPUタイムを割り当てる」事を優先するのか? Sleep()はCPUタイムを割り当てるべきスレッドが存在しないとき、すぐに制御が戻ってきます。 WaitForSingleObjectEx()でタイマーオブジェクト(CreateWaitableTimer()で生成した物など)自体を待てば確実に待ちが発生しますが、少々使い方がややこしい。 MSDNでご確認を。
お礼
ありがとうございました。 MSDNを確認します。
- toysmith
- ベストアンサー率37% (570/1525)
時間指定待機はプラットホーム依存です。 プラットホームを指定してください。 あと、希望する待機時間の単位も。
補足
回答ありがとうございます。 下記で補足の回答になっているか分かりませんが… OSはWindowsNT4.0です。 待機時間は最短で30秒、最長で5分といったところでしょうか。待機時間は特に細かい希望はありません。
- muyoshid
- ベストアンサー率72% (230/318)
こんにちわ。 momo_right さんのおっしゃられているように、 「Sleep」で良いと思います。 但し、Sleep はWin32API ですので、 Windows 環境で無いと使用できません。 → パラメータに sleep する時間をミリ秒単位で 指定します。 Unix/Linux 系でしたら、sleep/usleep 何かが使えます。
補足
回答ありがとうございます。 その上で質問なんですが、宣言方法とかそのコーディング方法なんかも教えていただければ幸いです。 ちなみにOSはWinNTなので問題ありません。
- net-in
- ベストアンサー率12% (1/8)
for文を無駄にまわしてみるとかどうでしょうか。。 自信無しですが。 for( inr i=0; i<1000; i++ ){ for( int j=0; j<1000; j++ ){ } } ・・時間だけは無駄に経過します、ハイ。
お礼
回答ありがとうございます。 回答方法だとたぶんCPUを無駄にしてしまうのかなと思います。でも、私の中ではすごく画期的な方法です。最終兵器として参考にさせていただきます。ありがとうございました。
お礼
ありがとうございます。 早速のぞいてみます。