68user's page 掲示板

Prev< No. 311〜312> Next  [最新発言に戻る] [過去ログ一覧]
No. 311 # mm 1999/05/29 (土) 22:48
とほほさんとこの話題が出てますね(笑い)
そのとほほさんのラウンジの質問を見ていて思い出したのですが、
(質問自体は、ホームぺージの作成には関係なさそう…)
statが返す構造体のmodeの上位7ビットはどのような意味がある
のでしょうか?
上位3ビットは、
    0x8000 ブロックデバイス
    0x4000 ディレクトリ
    0x2000 キャラクタデバイス
であることは分かったのですが、下位の
    0x1000
    0x0800
    0x0400
    0x0200
が分からないのです。
検索で探しても、ビットの意味まで記述した記事が見つけられなくて…(^^;

ところで、perlのCGIで、
    (stat(STDOUT))[2]&0x2000
    (stat(STDOUT))[2]&0x8000
を調べて見ると、下の方が真となって、ブロックデバイスと
出たのですが(STDINも同じ)、これってウチのWebサーバーが
CGIの標準出力を一旦ファイルにリダイレクトしている
ということなのでしょうか?

No. 312 # mm 1999/05/30 (日) 05:24
あれから、ls のソースを調べればいいと考えたのですが、
その中で、S_IFDIR とかを #defined した stat.h を探すのに
手間取ってしまいました。
(やはり、grep一発でカタが付く環境が羨ましい…(^^;)

それはともかく、各ビットが意味を持つ訳ではなく、
0xF000 type of file mask
でマスクした値が以下の意味を持つようです。

0x1000 named pipe (fifo) FIFO
0x2000 character special キャラクタ型スペシャルファイル
0x4000 directory ディレクトリ
0x6000 block special ブロック型スペシャルファイル
0x8000 regular 通常ファイル
0xA000 symbolic link シンボリックリンクファイル
0xC000 socket ソケットファイル
0xE000 whiteout
0x0200 save swapped text even after use

ところで、最後の2つは何なんでしょうか?

Prev< No. 311〜312> Next  [最新発言に戻る] [過去ログ一覧]