The read and write functions read and write a character string to the
device. If there is no read() or write() function in the
file_operations structure registered with the kernel, and the
device is a character device, read() or write() system
calls, respectively, will return -EINVAL. If the device is a
block device, these functions should not be implemented, as the VFS
will route requests through the buffer cache, which will call your
strategy routine. See Section for details on
how the buffer cache does this. The read and write
functions take these arguments: