• ベストアンサー

C言語で一定時間待機後、再実行

タイトル通り、プログラムが一定時間経過してから再び起動し始めるソースの書き方が分かりません。 C言語出なければ、APIでもいいのですが、その記述方法もあいまいなので、その辺もご教授下さい。 イメージとしてはSleep()みたいなのを考えています。 よろしくお願いします。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.4

こんにちわ。 #2 のmuyoshid です。 この手の情報で一番確実なものはやっぱり MSDN でしょう。 そう言う訳で、MSDN の中をちょっと探してみました。 参考URL を見てください。 Windows NT4.0 でやられているのなら、Visual C/C++ とかがInstall されているんですよね? 昔の事で、記憶が定かではありませんが、 Visual C/C++ の中に、Win32API のHELP が 入っていたような気がします・・・。

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/sleep.asp
momo_right
質問者

お礼

ありがとうございます。 早速のぞいてみます。

その他の回答 (4)

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.5

「時間経過を待つ」事を優先するのか?「他のスレッドのCPUタイムを割り当てる」事を優先するのか? Sleep()はCPUタイムを割り当てるべきスレッドが存在しないとき、すぐに制御が戻ってきます。 WaitForSingleObjectEx()でタイマーオブジェクト(CreateWaitableTimer()で生成した物など)自体を待てば確実に待ちが発生しますが、少々使い方がややこしい。 MSDNでご確認を。

momo_right
質問者

お礼

ありがとうございました。 MSDNを確認します。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

時間指定待機はプラットホーム依存です。 プラットホームを指定してください。 あと、希望する待機時間の単位も。

momo_right
質問者

補足

回答ありがとうございます。 下記で補足の回答になっているか分かりませんが… OSはWindowsNT4.0です。 待機時間は最短で30秒、最長で5分といったところでしょうか。待機時間は特に細かい希望はありません。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 momo_right さんのおっしゃられているように、 「Sleep」で良いと思います。 但し、Sleep はWin32API ですので、 Windows 環境で無いと使用できません。 → パラメータに sleep する時間をミリ秒単位で   指定します。 Unix/Linux 系でしたら、sleep/usleep 何かが使えます。

momo_right
質問者

補足

回答ありがとうございます。 その上で質問なんですが、宣言方法とかそのコーディング方法なんかも教えていただければ幸いです。 ちなみにOSはWinNTなので問題ありません。

  • net-in
  • ベストアンサー率12% (1/8)
回答No.1

for文を無駄にまわしてみるとかどうでしょうか。。 自信無しですが。 for( inr i=0; i<1000; i++ ){ for( int j=0; j<1000; j++ ){ } } ・・時間だけは無駄に経過します、ハイ。

momo_right
質問者

お礼

回答ありがとうございます。 回答方法だとたぶんCPUを無駄にしてしまうのかなと思います。でも、私の中ではすごく画期的な方法です。最終兵器として参考にさせていただきます。ありがとうございました。