writeシステムコールが呼び出すwriteメソッドの関数名をdio_write
とする。
このdio_write
の書式は、L.D.D.3の「3.7 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++
が不可
になる。