« linuxが重いと思ったら... | トップページ | ジャックってすごいの?マヌケなの? »

2011年4月21日 (木)

最近学んだこと---ctimeとdaemon

ちなみに、Cのライブラリ関数のお話です。

○ctime
ctimeというのは、

   #include <time.h>
   char *ctime(const time_t *timep);
   char *ctime_r(const time_t *timep, char *buf);
カレンダー時刻から日付文字列に変換してくれるというライブラリ関数です。
日付文字列というのは
    "Thu Apr 21 17:38:56 2011\n"
みたいな形式で、「かならず26バイト」とのこと。
ところが!!この関数、上の例にもあるように「最後に改行を付けてくれます」
これ、すごく余計なお世話だと思うけど、どうなのかなあ。この文字列をそのまま
csvファイルに出力したらえらいことになりましたよ。

○daemon
通常、daemonになるプログラム---要するにずっと動き続けるプログラムですな---
を作るときは、親と縁を切るだのプロセスリーダーになるだの入出力を切るだの...
とまあ、いろいろ厄介なのですが、この関数、

   #include <unistd.h>
   int  daemon(int nochdir, int noclose);
を使えば簡単にできてしまいます。作業ディレクトリの変更や、標準入力・標準出力・
標準エラーを/dev/null にリダイレクトするとかが不要ならば、
   daemon(1,1);
をプログラムに挿入するだけでOKでした。本当にこれでいいのかなあ...

以上、最近学んだことでした。

にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村

|

« linuxが重いと思ったら... | トップページ | ジャックってすごいの?マヌケなの? »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/152716/51452508

この記事へのトラックバック一覧です: 最近学んだこと---ctimeとdaemon:

« linuxが重いと思ったら... | トップページ | ジャックってすごいの?マヌケなの? »