[[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)]]