next up previous
次へ: dio_write関数の作成 上へ: システムコールの実装(その3: dio_write) 戻る: システムコールの実装(その3: dio_write)

writeシステムコール

writeシステムコールが呼び出す関数名をdio_writeとする。 このdio_writeの書式は、L.D.D.の「3.8 readとwrite]に合わせて、 次のようにする。

ssize_t dio_write(struct file *filp, const char *buff, size_t count,
                  loff_t *offp);

データバッファ(buff)が読み込み専用のためにconstとなっている他は、 dio_read関数と同じ引数をとる。

const char *buffに関して言えば、このばあいのポインタbuffは、 定数でなく変数である。記憶しているアドレスは変更できる。しかしながら、そ のアドレスが指すデータは定数である。具体的にいえば、buff++は可能 であるが、*buff = 'X'は不可である。なお、char *const buff であるならば、逆に*buff = 'X'は可能であるが、buff++が不可 になる。



MANOME Yoichi 平成18年12月26日