Para poder leer y escribir en dispositivos a nivel de aplicación, el programa llama a una función para abrir el dispositivo que puede ser real como un terminal o virtual como un puerto de red o un fichero de un sistema de ficheros.