next up previous
次へ: アプリケーションの作成 上へ: 情報システム実験(8) 戻る: ドライバの登録

システムコールの実行(read)

カーネル空間にドライバが格納されたので、次にユーザ空間側からシステムコー ルを利用して、このデバイスドライバを呼び出すことにする。

readをユーザ空間側から呼び出すときの書式は、次の通りである。


\begin{boxedminipage}{10cm}
\begin{verbatim}ssize_t read(int fd, void *buff, size_t count);\end{verbatim}
\end{boxedminipage}

各引数(パラメータ)は次のような意味を持つ。

fdは、読み込みを行なうデバイスのファイルデスクリプタを指定する。

buffは、読み込んだデータを格納する変数へのポインタを指定する。

countは、読み込むデータサイズをバイト単位で指定する。

戻り値(返り値)は、正常終了したばあいは、読み込んだバイト数を返す。 エラーのばあいは-1が返され、errnoに指定の値が格納される。

readシステムコールはユーザ空間側の関数であるが、通常のC言語の本 で説明される機会が少ないので、配布資料を参考にすること。



Subsections

MANOME Yoichi 平成18年12月26日