Entrada / salida de archivo C


El lenguaje de programación C proporciona muchas funciones de biblioteca estándar para la entrada y salida de archivos . Estas funciones constituyen la mayor parte del encabezado de biblioteca estándar de C <stdio.h> . [1] La funcionalidad desciende de un "paquete de E / S portátil" escrito por Mike Lesk en Bell Labs a principios de la década de 1970, [2] y se convirtió oficialmente en parte del sistema operativo Unix en la Versión 7 . [3]

La funcionalidad de E / S de C es de un nivel bastante bajo según los estándares modernos; C abstrae todas las operaciones de archivo en operaciones sobre flujos de bytes , que pueden ser "flujos de entrada" o "flujos de salida". A diferencia de algunos lenguajes de programación anteriores, C no tiene soporte directo para archivos de datos de acceso aleatorio ; para leer de un registro en medio de un archivo, el programador debe crear una secuencia, buscar en la mitad del archivo y luego leer bytes en secuencia de la secuencia.

El modelo de flujo de E / S de archivos fue popularizado por Unix, que se desarrolló al mismo tiempo que el propio lenguaje de programación C. La gran mayoría de los sistemas operativos modernos han heredado secuencias de Unix, y muchos lenguajes de la familia de lenguajes de programación C han heredado la interfaz de E / S de archivos de C con pocos o ningún cambio (por ejemplo, PHP ).

Esta biblioteca utiliza lo que se denomina streams para operar con dispositivos físicos como teclados, impresoras, terminales o con cualquier otro tipo de archivos admitidos por el sistema. Los arroyos son una abstracción para interactuar con estos de manera uniforme. Todos los flujos tienen propiedades similares independientemente de las características individuales de los medios físicos con los que están asociados. [4]

La mayoría de las funciones de entrada / salida de archivos C se definen en <stdio.h> (o en el encabezado C ++ cstdio , que contiene la funcionalidad estándar de C pero en el espacio de nombres estándar ).

El estándar POSIX define varias extensiones a stdio en sus Definiciones Base, entre las que se encuentran una función readline que asigna memoria, las funciones fileno y fdopen que establecen el vínculo entre los objetos FILE y los descriptores de archivos , y un grupo de funciones para crear objetos FILE que hacen referencia a búferes en memoria. [5]