メモの日々


2003年12月24日(水) [長年日記]

[unix][c] 子プロセスでファイルディスクリプタを閉じる

fork & exec したとき、親プロセスが開いていたファイルディスクリプタは子プロセスにも引き継がれる。が、子プロセスへファイルディスクリプタを渡したくない場合がある。

そのような場合は、fcntl を使い、ファイルディスクリプタの close-on-exec フラグをオンにすればよい。

fcntl(fd, F_SETFD, 1);

こうしておけば、exec後にファイルディスクリプタは閉じられる(ようだ)。

[howto][unix][windows][soft] sambaを使うと実行ビットがセットされてしまう

sambaを使ってunix側のファイルをwindowsから更新すると、ファイルの実行ビットが立ってしまう。なんで?

sambaの設定で、「create mask」というのが0744になっていたのでそれを0644に変更してみた。これで改善されたようだ。

[c] auto じゃだめ

openlog で渡したプログラム名を syslogd がちゃんと出力してくれず、ずーーーーーーーっと悩んでいた。プログラム名が文字化けしてしまうのだ。

結局、openlog に渡すプログラム名をauto変数で確保していたからいけないのであった。関数を抜けるとなくなっちゃうから。もー、おれのバカバカバカ。

[unix][vim] ありゃ、vim ちゃんと動いた

日本語を正しく扱えていなかったはずのvimが、正しく動くようになった。LANG が「ja_JP.EUC」となっていたのを「ja_JP.eucJP」に変更したら。

おかしいな、このLANGの設定は前回も試したはずなのだが。でも、/usr/share/locale には ja_JP.eucJP は存在するのが ja_JP.EUC は存在しないので 、これが正しいのだ。/usr/share/locale を見ればいいということを知らなかった。

やること

  • 防虫カバーを買う
  • 契約
  • 年賀状
  • 家賃
  • 保険料
  • ゴミ捨て