• ベストアンサー

C言語で実行時間を指定して終了する方法を教えてくれませんか?

C言語で、実行してから5秒後に終了するプログラムを作成したいのですが、どのような関数を使用し、どのようにプログラムを作成すればよいでしょうか?

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

  • ベストアンサー
noname#120896
noname#120896
回答No.1

time()関数で実時間を取得しつつ、while ()で5秒経過するまでループさせておく・・・というのではダメでしょうか?

poohll
質問者

お礼

なるほど!! ただネットでtime()関数を調べてプログラムを作成したのですが、うまくいきません。。 お手数ですが、その方法ではどのように作成すればよいのか教えてもらえないでしょうか?

その他の回答 (3)

回答No.4

OSがWindowsなら・・・Sleep関数なんかはどうでしょうか? これは単に指定時間(ms)の間何もしない関数ですが・・・ それとLinuxだとusleepやnanosleepがあるようです。 http://oshiete1.goo.ne.jp/qa1796385.html (URLが長くなるので参考URL欄に入れられませんでした)

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdllpro/html/_win32_sleep.asp
poohll
質問者

お礼

すいません。OSはLINUXです。 また詳しく調べいただいて申し訳ないのですが、一定時間内はずっとプログラムを動かしておきたいのでsleepはつかえませんでした。 調べていただきありがとうございます!!

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.3

一定時間後に終了と言うが、その間、バリバリ計算して、その時間で計算を打ち切るようなプログラムをしたいのか、何らかの待ち動作を一定時間で打ち切りたいのか、それとも単にぼーっと一定時間待つのかで全く違うので補足してください。 OSと処理系もよろしく

poohll
質問者

お礼

返答ありがとうございます。 なるほど! 一定時間プログラムを動かしておきたいので、一定時間でその動作を終了したいです。なのでsleepなど時間をぼーっと待つのはふさわしくないです。 OSはLINUXのRED HATです。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

環境を書いた方がいいですよ。 UNIX 系なら SIGALRM シグナルを使うのかな?

poohll
質問者

お礼

すいません。環境はLINUXです。 SIGALRMですか?調べてみます!ありがとうございます。

関連するQ&A

専門家に質問してみよう