getc(descrp): receive a single character from device
putc(descrp, ch): send a single character to device
read(descrp, buff, count): get count number of characters into buff.
write(descrp, buff, count): send count number of characters from buff to device
control(descrp, func, addr, addr2): `control' device
seek(descrp, pos): special form of control that positions device and is applied only to randomly accessed devices.
open(descrp, nam, mode): inform device that data transfer will begin
close(descrp): inform device that data transfer has ended
Not all of these operations apply to all devices. For instance,
none of these apply to the clock.
These operations apply only to devices that may be considered sequential
streams of data.
Moreover,
open and close are not needed for terminal devices and seek is not
possible on such devices.