- ベストアンサー
signalハンドラに引数を渡したい
c言語のsignal関数を使用するプログラムを作成しています。 このプログラムの終了は異常終了以外はkillのみにて終了することになっています。そこでsignalにて登録したハンドラーに引数をわたせますでしょうか?というのは、killが発行され、ハンドラ内にて領域の開放やclose処理を行いたいと思っています。この領域開放などを行う変数を渡したいと思っています。プログラムが終了するんだから問題ないのも重々承知ですが、なんだか作り適に気持ちが悪くて。。。 どなたかご存知でしたらお教えください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#208124
回答No.1
必然的にマルチスレッドですがsigwaitで待って引数渡して関数呼び出し 好きなように引数渡して、好きなように非同期シグナルセーフでない関数を呼び出せます # killがSIGKILLシグナルなのか腑に落ちない部分も感じますが
その他の回答 (1)
- tatsu99
- ベストアンサー率52% (391/751)
回答No.2
シグナルハンドラは void some_handler(int sig)のように、引数が決まっています。また、このハンドラを呼び出すのは、OSであり、アプリケーションプログラム(つまりあなたが書いたプログラム)から、呼び出すことは想定されていません。 具体的に、どのような引数をわたしたいのでしょうか?