BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 9 Librerías Estándar
Teoría: Entrada / Salida <stdio.h>

FILE *fopen(const char *filename, const char *mode);
La función fopen abre un archivo cuyo nombre es la cadena a la cual señala filename y asocia un flujo al mismo. El argumento mode señala una cadena que empieza con alguna de las secuencias siguientes:
r abre archivo de texto para lectura.
w trunca a cero longitud o crea un archivo de texto para escritura.
a agrega; abre o agrega un archivo de texto para escritura al fin de archivo.
rb abre archivo binario para lectura.
wb trunca a cero longitud o crea un archivo binario para escritura.
ab agrega; abre o agrega un archivo binario para escritura al fin de archivo.
r+ abre archivo de texto para actualizar (lectura y escritura).
w+ trunca a longitud cero o crea un archivo de texto para actualizar.
a+ agrega; abre o crea un archivo de texto para actualizar, escribiendo al fin de fichero.
r+b o rb+ abre archivo binario para actualizar ( lectura o escritura).
w+b o wb+ trunca a longitud cero o crea archivo binario para actualizar.
a+b o ab+ agrega; abre o crea archivo binario para actualizar, escribiendo al fin de fichero.

Abrir un archivo en modo de lectura ('r' como el primer carácter en el argumento mode) fallará si el archivo no existe o no puede ser leído. Abrir el archivo con el modo agregar('a' como primer carácter en el argumento mode) hace que todas las escrituras subsiguientes al archivo se obligue a lo que en ese momento sea el fin de archivo, independientemente a llamadas a la función fseek. En algunas puestas en práctica , la apertura de un archivo binario en modo de agregar ( 'b' como segundo y tercer carácter en la lista anterior de los valores de argumento mode) puede colocar de forma inicial el indicador de archivo para el flujo más allá de los últimos datos escritos, debido a relleno de carácter nulo.
Cuando se abre un archivo en el modo de actualizar ('+' como segundo y tercer carácter en la lista anterior de valores de argumento mode), se puede llevar a cabo tanto entrada como salida sobre el flujo asociado.Sin embargo la salida no puede ser seguida en forma directa por entrada, sin una llamada intermedia a la función fflush o a la función de posicionamiento de archivo (fseek, fsetpos o rewind), y la entrada no puede ser de manera directa seguida por salida sin una llamada intermedia a una función de posicionamiento de archivo, a menos que la operación de entrada se encuentre con fin de fichero. La apertura (o creación) de un archivo de texto en el modo de actualizar, puede quizás abrir (o crear) un flujo binario en algunas puestas en práctica particulares.
Una vez abierto, un flujo está por completo equipado con memoria temporal (búfer) si y sólo si se puede determinar que no se refiere a un dipositivo interactivo. Los indicadores de error y de fin de archivo para el flujo estarán desactivados. La función fopen devuelve un apuntador al objeto que controla el flujo. Si la operación de apertura falla, fopen devuelve un apuntador nulo.