Show page source of internal22-150-シンボリックリンクファイルの読みだし #25575

[[PageNavi(internal22-navi)]]

{{{ comment
h2w-title:シンボリックリンクファイルの読みだし
}}}
 

== シンボリックリンクファイルの読みだし == #SECTION0310132000000000000000

シンボリックリンクファイルの読み出しは、vfs sys_readlink関数にてnamei関数でシンボリックリンクファイルのiノードを求めた後、そのiノードのreadlinkオペレーションを呼び出す。ext2ファイルシステムでは、ext_readlink関数が呼び出される。

{{{
   ext2_readlink(シンボリックリンクファイルのdentry, 読みだし先)
      if(データブロックを持っている(i_blocksメンバ)) {
           データブロックの読み込み(ext2_bread関数)
           データブロック中に格納されているパス名を、読みだし先(ユーザ空間)にコピー
           データブロックの読み込んだバッファの解放(brelse関数)
      } else {
           iノード中に格納されているパス名を、読みだし先(ユーザ空間)にコピー
      }
}}}

シンボリックリンクファイルの削除は、通常ファイルと同じくunlink処理で行われる。処理手順は全く同じである。

----

''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1

[[PageNavi(internal22-navi)]]