[PHP-users 7942] Permissionのアルゴリズム
Morikawa [encore-ann]
php-users@php.gr.jp
Wed, 05 Jun 2002 23:49:24 +0900
もりかわ@似非PGです。
Unix のファイルシステムで、permission を 1,2,4 の組み合わせから
設定しているアルゴリズムについてお聞きしたいと思います。
PHPと直接関係はないんですが、下記のようなスクリプトを作成して
ある数値に含まれている要素を配列で返すようにしてみました。
見れば分かる通り、while で回しているのであまりすっきりとはしません。
また、僕自身がどういうアルゴリズムに基づいているのか分からなくて
(もちろん存在も知らなくて)、PHPの関数にあるのかどうかも調べきれ
ません。
結構いろいろと Unix Permission アルゴリズム などをキーワードに
探してみたんですが、うまく見つかりません。
それで、もし該当アルゴリズムがあるのであればその名前、
関数があるのであればマニュアルの場所など教えていただけ
ないでしょうか。
# "それはともかく、もっと簡単に書けるで〜"ってのもありです。
## PHPでも定数に数値を割り当てているのはこういう絡みあるのかな?
例:
(1,2,5) == decode_option(7)
(1,4) == decode_option(5)
(64, 32, 4) == decode_option(100)
(64, 32, 4, 2, 1) == decode_option(103)
function decode_option($val) {
if (!$val) { return false; }
$list = array();
$i = 1;
while ($val > 0 ) {
if (( $val >= $i ) and ( $val >= $i*2 )) {
$i = $i * 2;
} elseif ($val >= $i) {
push($list, $i);
$val -= $i;
$i = 1;
} else {
$i = $i / 2 ;
}
}
return $list;
} // function decode_option
もりかわ
プログラマ募集中:http://www.find-job.net/fj/showjob.cgi?id=12226