linuxで自作プログラムのデーモンを作成していて,シャットダウンの処理に困っています.
Cプログラムでファイルをオープンして追加書き込みの処理をしていたとします.
このとき,誤ってOSをシャットダウンしてしまった場合,
ファイルはオープンされたまシャットダウンしてしまうのでしょうか?
それともOSレベルでファイルをクローズしてくれてシャットダウンするものなのでしょうか?
宜しくお願いします.
Cプログラムのシャットダウンシグナル
Re:Cプログラムのシャットダウンシグナル
ありがとうございます,
安全にクローズしたいのですが,シャットダウンのシグナルみたいなのを
C言語で監視できるものなのでしょうか?
> OSレベルでクローズしてくれます。
> 内容は保証できないと思いますが。
安全にクローズしたいのですが,シャットダウンのシグナルみたいなのを
C言語で監視できるものなのでしょうか?
> OSレベルでクローズしてくれます。
> 内容は保証できないと思いますが。
Re:Cプログラムのシャットダウンシグナル
http://d.hatena.ne.jp/seiunsky/20090322/1237747356
↑こんな感じでシグナルごとの挙動を変更することができますが、
デーモンプロセスは、ソケットを扱うので、基本シグナルは無視するように設定します。
たしかこんな感じのものです。
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, SIG_IGN);
プロセスが終了するとクローズされるので、シャットダウンだったら正常に終了しますよ
HDDに保存されている方のファイルもそうそう壊れないでしょうし、
メモリからHDDに保存されなかった分が保証されないということではないかと思います。
、
↑こんな感じでシグナルごとの挙動を変更することができますが、
デーモンプロセスは、ソケットを扱うので、基本シグナルは無視するように設定します。
たしかこんな感じのものです。
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, SIG_IGN);
プロセスが終了するとクローズされるので、シャットダウンだったら正常に終了しますよ
HDDに保存されている方のファイルもそうそう壊れないでしょうし、
メモリからHDDに保存されなかった分が保証されないということではないかと思います。
、