• ベストアンサー

signalハンドラに引数を渡したい

c言語のsignal関数を使用するプログラムを作成しています。 このプログラムの終了は異常終了以外はkillのみにて終了することになっています。そこでsignalにて登録したハンドラーに引数をわたせますでしょうか?というのは、killが発行され、ハンドラ内にて領域の開放やclose処理を行いたいと思っています。この領域開放などを行う変数を渡したいと思っています。プログラムが終了するんだから問題ないのも重々承知ですが、なんだか作り適に気持ちが悪くて。。。 どなたかご存知でしたらお教えください。

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

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

必然的にマルチスレッドですがsigwaitで待って引数渡して関数呼び出し 好きなように引数渡して、好きなように非同期シグナルセーフでない関数を呼び出せます # killがSIGKILLシグナルなのか腑に落ちない部分も感じますが

参考URL:
http://d.hatena.ne.jp/yupo5656/20060114/p1

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

シグナルハンドラは void some_handler(int sig)のように、引数が決まっています。また、このハンドラを呼び出すのは、OSであり、アプリケーションプログラム(つまりあなたが書いたプログラム)から、呼び出すことは想定されていません。 具体的に、どのような引数をわたしたいのでしょうか?

関連するQ&A

専門家に質問してみよう