アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

必然的にマルチスレッドですがsigwaitで待って引数渡して関数呼び出し


好きなように引数渡して、好きなように非同期シグナルセーフでない関数を呼び出せます

# killがSIGKILLシグナルなのか腑に落ちない部分も感じますが

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

シグナルハンドラは


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!