diary)この広告は、90日以上更新していないブログに表示しています。勉強はじめに今回はunix/sys3.cを見ていきます。)(6014行目)はfstatシステムコールのハンドラです。)(6028行目)はstatシステムコールのハンドラです。fstatもstatもファイルのinode情報を取得するシステムコールです。異なるのはファイルの指定の仕方です。fstatはファイルディスクリプタ(つまり、オープン済みのファイルが対象)で指定し、statはパス名で指定します。処理の大部分が共通です。異なるのは如何にinodeを取得するか、です。)を使ってfile構造体を取得します。)に渡して処理をさせます。)に渡して処理をさせます。)を呼んで参照カウンタをデクリメントします。fstatシステムコールの引数はファイルディスクリプタ、inode情報を格納する変数のアドレスです。statシステムコールの引数はファイルのパス名、inode情報を格納する変数のアドレスです。)(6045行目)はfstatとstatの共通処理を行います。ディスクから該当のinode情報を読み出してユーザ領域にコピーします。コピーされる情報は以下です。)(6069行目)はdupシステムコールのハンドラです。ファイルディスクリプタを複製します。]からも指すようになります。file構造体の参照カウンタもインクリメントされます。同じfile構造体を指すため、二つのファイルディスクリプタはファイルオフセットも共有します。これを使ってパイプを実現しているようです。次のエントリで詳しく扱う予定です。)(6086行目)はmountシステムコールのハンドラです。ブロックデバイスのマウント処理を行います。mountシステムコールの引数は、マウントするデバイスのパス名、マウント先のパス名、読み書きフラグ、です。マウントするデバイスのパス名が妥当であることをチェックします。