lseekシステムコール

ファイルポインタを設定する処理は、vfs llseek関数が行っている。ファイル構造体にllseekオペレーションが登録されている場合はそのオペレーションを実行し、登録されていない場合はデフォルト処理default_llseek関数を呼び出す。

ext2ファイルシステムの通常ファイルの場合、ext2_file_lseek関数が呼び出される。この関数は、ファイルポインタ値のエラーチェックを行っているのみで、あとは単純にファイル構造体の中のファイルポインタ値を指定された値に設定するのみである。ファイルシステム毎に扱えるファイルサイズの上限が決まっているため、各ファイルシステム側で処理できるようにしているものと思われる。

ディレクトリ、シンボリックリンクファイルの場合、このオペレーションは無登録であり、lseek処理としてデフォルトの関数default_llseek関数が呼び出される。これはエラーチェック無しでファイルポインタ値を進める関数である。


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