• 締切済み

Windowsのシグナルでalarm()の代用方法を教えてください

UNIX の signal を使ったソースを Windows に変更したいのですが、Windows には alarm() 関数が用意されておらず、タイムアウトをかけることができません。 どのように実現させたらよろしいでしょうか?

みんなの回答

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.2

> 基本的に、API は使用しない構想だったのですが、API なしでは足りない関数が多いのですね。 そうですね。同期に関する機能は Windows Platform が提供しています。kernel32.dll に格納されています。Win32 API の利用が前提となりますね。あわせて下記マテリアルから Platform がどこまで提供しているか全容を把握して臨まれるとよいと思います。 Synchronization http://msdn.microsoft.com/en-us/library/ms686353%28VS.85%29.aspx 参考URLは、日本語によるレクチャ・ノートの一つです。 お役立てください。

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20070129/259838/?ST=develop
capture
質問者

お礼

> そうですね。同期に関する機能は Windows Platform が提供しています。 なるほど。 マルチプラットフォームのソースを記述したかったのですが、ここら辺は場合分けが必要なようですね。 ANSI準拠の関数しか知らないもので、結構苦労しそうです。 教えていただいたURLで概要を把握したいと思います。 ありがとうございます。

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.1

こんにちは。 Event オブジェクトが提供されていますので、適用できそうか検討いただくのがよいと考えます。 msdn library での Event の解説 http://msdn.microsoft.com/en-us/library/ms682655(VS.85).aspx 使用例などは以下の Win32 API 名を検索語に指定してググッてみられるとよいでしょう。 CreateEvent OpenEvent PulseEvent ResetEvent

capture
質問者

お礼

iriyakさん、ご回答ありがとうございます。 API の Event ですか。 基本的に、API は使用しない構想だったのですが、API なしでは足りない関数が多いのですね。 Event を調べてみます。

関連するQ&A