A generic device has to be opened for read and write access:
int fd = open (device_name, O_RDWR);
(This is the case even for a read-only hardware device such as a cdrom drive).
We have to perform a write
to send the command and a read
to get back any results. In the case of an error the return code is
negative (see section
sec-errorhandling for a complete list).