easy!テキストの71〜73ページ本文ディスク上のinodeの構造を表すdinode構造体は、サイズとブロック番号の配列を含んでいる(図5-4参照)。inodeのデータは、dinode構造体のaddrs配列に記録されているブロック群から見つける事ができる。データの最初のNDIRECT個のブロックは、そのaddrs配列の最初のNDIRECT個のエントリに記録されている。blocks)と呼ばれる。データの次のNINDIRECT個のブロックは、そのinodeには直接記録されておらず、データブロックにある。block)と呼ばれる。addrs配列の最後のエントリは、インダイレクトブロックのアドレス用である。BSIZE)分は、インダイレクトブロックを読み込んだ後にしか読み込むことは出来ない。これはディスク上での良い表現法だが、この構造を利用するコードにとっては複雑である。bmap関数は、readi関数やwritei関数(すぐ後で見ることになるだろう)などのより高い層のルーチンのために、この構造を管理する。bmap関数は、inodeであるipを受け取り、そのinodeのbn番目のデータブロックのブロック番号を返す。ipがそのようなブロックをまだ持っていない場合は、bmap関数がそれを割り当てる。range");}bmap関数は、簡単な仕事から始める。最初のNDIRECT個のブロックは、inodeそれ自身にリストアップされている。次のNINDIRECT個のブロックは、ip->addrs[NDIRECT]で示されるインダイレクトブロックにリストアップされている。bmap関数は、そのインダイレクトブロックを読み込み、そしてそのインダイレクトブロックの中の正しい位置からブロック番号を読み出す。NINDIRECTを越えている場合、bmap関数はpanic関数を呼ぶ。呼び出し側は、範囲外のブロック番号について問い合わせないようにする責任がある。bmap関数は、必要に応じてブロックを割り当てる。未割り当てのブロックは、ブロック番号0として示される。よってbmap関数は0に遭遇したら、必要に応じて割り当てられた新しいブロックの番号でそれを置き換える。bmap関数は、そのinodeが成長するときに必要に応じてブロックを割り当てる。itrunc関数は、それらを解放し、inodeのサイズを0にリセットする。itrunc関数は、ダイレクトブロックを解放することから初め、そしてそれからインダイレクトブロックの内容を解放し、そして最後にインダイレクトブロックそのものを解放する。iupdate(ip);}bmap関数は、readi関数やwritei関数のような、inodeのデータストリームへアクセスする関数を書きやすくする。readi関数は、inodeからデータを読み込む。readi関数は、指定されたオフセットとカウントが、ファイルの終わりを超えないかどうかチェックする事から始める。ファイルの終わりを超えたところから始まるような読み込みにはエラーを返す。ファイルの終わりまたはファイルの終わりをまたぐような指示があった場合は、指定されたよりも少ないデータを返す。メインのループは、ファイルの各ブロックを処理し、バッファからデータをdstに格納する。writei関数は、3つの例外を除いてreadi関数ととてもよく似ている。ファイルの終わりから、もしくはファイルの終をまたぐような書き込みは、ファイルの最大サイズを上限としてファイルを大きくする。メインのループでは、データをバッファから取り出すのではなく、バッファに格納する。書き込みがファイルを拡張した場合、writei関数はそのサイズを更新しなければならない。T_DEVのチェックから始める。これは、ファイルシステム上にデータがない、特殊なデバイスを制御するためにある。その場合については、ファイルディスクリプタの層の節で説明するだろう。stati関数は、inodeのメタデータをstat構造体にコピーする。この構造体は、statシステムコール経由でユーザプログラムにそのまま提供される。ip->size;}感想ファイルがディスク上でどのように表現されているかと、その周辺の(といってもどれも必要不可欠)関数についての説明です。BSIZE)まででしょうか。NINDIRECTと定義されてるので多分そうでしょう。これを拡張するには、インダイレクトブロックでもダイレクトブロックのように、addrs配列の最後に次のインダイレクトブロックのブロック番号を含めるようにすればいいのかな。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。...774Fedexアカウント取得後にオンラインで手続きすれ...NETこういうのずっと見てしまう気持ちがよくわかります(...BINGEブログを拝見させていただきました・・・。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。花粉症対策についてはこれまで次の記事を書いてきました。