ページ 11

Cプログラムのシャットダウンシグナル

Posted: 2010年9月01日(水) 20:14
by のとと
linuxで自作プログラムのデーモンを作成していて,シャットダウンの処理に困っています.

Cプログラムでファイルをオープンして追加書き込みの処理をしていたとします.

このとき,誤ってOSをシャットダウンしてしまった場合,
ファイルはオープンされたまシャットダウンしてしまうのでしょうか?
それともOSレベルでファイルをクローズしてくれてシャットダウンするものなのでしょうか?

宜しくお願いします.

Re:Cプログラムのシャットダウンシグナル

Posted: 2010年9月01日(水) 20:18
by Poco
OSレベルでクローズしてくれます。
内容は保証できないと思いますが。

Re:Cプログラムのシャットダウンシグナル

Posted: 2010年9月02日(木) 09:35
by のとと
ありがとうございます,

安全にクローズしたいのですが,シャットダウンのシグナルみたいなのを
C言語で監視できるものなのでしょうか?

> OSレベルでクローズしてくれます。
> 内容は保証できないと思いますが。

Re:Cプログラムのシャットダウンシグナル

Posted: 2010年9月02日(木) 19:13
by アビゲイル
http://d.hatena.ne.jp/seiunsky/20090322/1237747356
↑こんな感じでシグナルごとの挙動を変更することができますが、
デーモンプロセスは、ソケットを扱うので、基本シグナルは無視するように設定します。

たしかこんな感じのものです。
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, SIG_IGN);

プロセスが終了するとクローズされるので、シャットダウンだったら正常に終了しますよ
HDDに保存されている方のファイルもそうそう壊れないでしょうし、
メモリからHDDに保存されなかった分が保証されないということではないかと思います。