68user's page 掲示板

Prev< No. 314> Next  [最新発言に戻る] [過去ログ一覧]
No. 314 # 68user 1999/05/30 (日) 09:13
> その中で、S_IFDIR とかを #defined した stat.h を探すのに
> 手間取ってしまいました。
stat(2)を見るのが一番早いんじゃないでしょうか。

> 0x0200 save swapped text even after use
sticky bitです。chmod 1755、chmod u+t などとすればこのビットを立てられます。

以下、知ってたらごめんなさいな説明。

昔のUNIXでは仮想記憶はなく、実メモリと HDD上のスワップ領域の
2本立てでした。で、sticky ビットが立っているファイル(実行ファイル?)
のテキスト領域は、実行後もスワップ領域に保持され、再実行する際は
高速に実行できるようになっていました。つまり頻繁に使うプログラムの
stickyを立てておけば高速に実行が可能だったわけです。

しかし、現在のコンピュータはキャッシュや仮想領域が進化したので、
stickyビットの重要性はなくなりました。FreeBSDではファイルに
対する stickyビットは無視されています。
# ここらへんは、正しいことを書いているかどうか自信がありません。

一方ディレクトリに対する stickyはちゃんと意味があって、
誰でもその下にファイルを作成することはできるけど、削除する際は
ファイルのオーナーしか削除できないという意味があります。
/tmp がいい例ですね。
    % ls -ld /tmp
    drwxrwxrwt 18 bin bin 1536 May 30 07:57 /tmp/

> 0xE000 whiteout
うーん、ローカルの全ファイルに対して、このビットが立ってるか
どうか調べてみたんですが、1つもありませんでした。なんでしょうね?

> 下の方が真となって、ブロックデバイスと
> 出たのですが(STDINも同じ)
僕のまわりのFreeBSD/Solarisでは、STDIN/STDOUTともに、普通の状態だと
キャラクタデバイス(ttyですな)、ファイルにリダイレクトするとregular、
パイプならFIFOになりました。CGI上で実行すると、IN/OUTともFIFOでした。
# http://X68000.startshop.co.jp/~68user/tmp/mode.txt
# http://X68000.startshop.co.jp/~68user/tmp/mode.cgi

> これってウチのWebサーバーがCGIの標準出力を一旦ファイルに
> リダイレクトしているということなのでしょうか?
mmさんのところってHPですから(でしたよね?)、実装の違いがあるの
かもしれないので、僕の知識では何とも言いがたいです。

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