マイシグナルハンドラは次のようになります。Cでデーモンを停止
volatile sig_atomic_t loop = 1;
void handle()
{
loop = 0;
}
そして、私のようであるデーモンがあります。
void _start_()
{
...
sa.sa_handler = handle;
sigaction(SIGINT, &sa, NULL);
while(loop)
{
//add a line to a file
}
...
}
私のような別の関数から、デーモンstop
にしたいの。
void _stop_()
{
raise(SIGINT);
}
私の考えは、その後while
、loop
の値が0で何とかならば、ありますfalseと評価され、デーモンは終了します。どのように私はこれを達成することができます
_start_(); //daemon starts
//computation
_stop_() //daemon stops writing to the file. exits
: は、私は次のようにこの2つの関数を使用するように計画していますか?問題は私が_stop_()
からデーモンを停止できないことです。
おかげ
デバッガでプログラムを見てみましたか? –
詳細を教えてください。 – Sayan