stringtranslate.com

leer (llamada al sistema)

En los sistemas operativos modernos compatibles con POSIX , un programa que necesita acceder a los datos de un archivo almacenado en un sistema de archivos utiliza la llamada al sistema read . El archivo se identifica mediante un descriptor de archivo que normalmente se obtiene de una llamada anterior a open . Esta llamada al sistema lee los datos en bytes , cuyo número es especificado por el autor de la llamada, del archivo y los almacena en un búfer proporcionado por el proceso que realiza la llamada.

La llamada al sistema de lectura toma tres argumentos:

  1. El descriptor de archivo del archivo.
  2. El búfer donde se almacenarán los datos leídos.
  3. El número de bytes que se leerán del archivo.

Uso de POSIX

La interfaz de llamada al sistema de lectura está estandarizada por la especificación POSIX. Los datos de un archivo se leen llamando a la función de lectura:

ssize_t leer ( int fd , void * buf , size_t count );      

El valor devuelto es el número de bytes leídos (cero indica fin de archivo ) y la posición del archivo avanza según este número. No es un error si este número es menor que el número de bytes solicitados; esto puede suceder, por ejemplo, porque hay menos bytes disponibles en este momento (tal vez porque estábamos cerca del fin del archivo, o porque estamos leyendo desde una tubería , o desde una terminal ), o porque la llamada al sistema fue interrumpida por una señal .

Como alternativa, se devuelve -1 cuando ocurre un error; en tal caso, errno se configura adecuadamente y además se deja sin especificar si la posición del archivo (si la hay) cambia.

Véase también

Referencias

Enlaces externos