徒然日記
2013年2月7日(木) [長年日記]
■ 今日のお題: directoryはread()できるか
むかしはディレクトリって普通にopenしてreadできんかったっけ? 2013-02-07 22:34:13 +0900 via HootSuite
kitaj
Junichiro Kita
@kitaj 今もやれば普通にできるんでは? 2013-02-07 23:14:46 +0900 via web
smbd
Mitsuru SHIMAMURA
@smbd ほんとにか? 2013-02-07 23:26:14 +0900 via Twitter for iPhone
kitaj
Junichiro Kita
うーん。そう言われると途端に不安に…。ということで調べてみた。
結論: Linuxでは"Is a directory"[EISDIR]でエラー。FreeBSD(4,6,8で調べた)は普通にread()できて、directory entryを得られる。
たとえばこんなので
Linux:
$ ./opendir read failed Is a directory
FreeBSD:
$ ./opendir * ..+ fuga, moge
(terminal上で化けてる)
こんなかんじで、LinuxはEISDIRが帰ってきて、FreeBSDは(NFSとかでなければ)directory entryが書き出される。
この辺りはちゃんとmanに書いてあるっていうね… Linux, FreeBSD
数年前、仕事でBSDなOSを触ってたときは間違ってdirectoryをcatするとdirectory entryが表示されてて、Linuxでcatすると"cat: /tmp: Is a directory"と表示されるのは、Linuxのcatがdirectoryの場合はエラーになるように処理してるんだと思ってたら、そもそもEISDIRっていうのがあったんですなー
■ gist pluginで貼りつけたsourceの背景がケバい…
↑のsourceをgist pluginで貼りつけたわけですが、当初こんなケバい事になってました。なにこれェ…
これ、gistの埋め込みが
<table cellpadding="0" cellspacing="0" class="lines highlight">
こんなかんじでhighlight classが設定されていて、highlight plugin用にhighlight classの背景が全部黄色になるようにしてたからだった…
append-cssで
table.highlight { background-color: transparent; }を追加して、ひとまず正常な色に。