Академический Документы
Профессиональный Документы
Культура Документы
Introducción
Las funciones básicas para manejar ficheros se encuentran en la librería de stdio.
Con dichas funciones se pueden realizar, entre otras, las siguientes acciones:
1. Crear un fichero
2. Leer y Escribir en un fichero
3. Abrir un fichero
4. Posicionarnos en el fichero y conocer su estado
Modos de acceso
Antes de realizar una operación sobre un fichero es necesario obtener un manejador que
nos permita referirnos a él (el fichero). Esto es porque la operación siempre se hace sobre
un fichero.
Dependiendo del modo de acceso con el que creemos el manejador, podremos realizar
unas operacions u otras sobre el fichero asociado:
Modo Operación
Lectura (r) Leer, posicionarnos, conocer su estado,
otros procesos pueden leer (depende del
sistema)
Escritura (r) Esctribir, posicionarnos, otros procesos no
pueden leer (fichero bloqueado)
Lectura/Escritura (r/w) Leer, posicionarnos, escribir, el fichero
está bloqueado
Admás de estos modos de acceso, C define otros especiales que añaden matices a las
operaciones a realizar. Ejemplo: a (append), abrir fichero para escritura posicionandonos
al final.
Funciones
#include <stdio.h>
Crear/cerrar manejador:
FILE * fopen(const char *path, const char *mode);
int fclose(FILE *stream);
Lectura/escritura binaria:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
Lectura/escritura texto:
int fscanf(FILE *stream, const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
Estado y posicionamiento:
int feof(FILE *stream);
int fseek(FILE *stream, long offset, int whence);
Crear/cerrar manejador
Modos de apertura:
“r” Lectura
“r+” Lectura/Ecritura, posicinado al principio del fichero
“w” Escritura, trunca el fichero a 0 bytes
“w+” Lectura/Escritura, trunca el fichero a 0 bytes
“a” Escritura, posicionado al final de fichero (append > añadir)
Además se comtempla la adición de los moficiadores b y t. b implica binario, y t implica
texto. La interpretación de este modificador depende de la plataforma donde corra el
programa y del compilador C que empleemos. Por lo general usaremos t cuando nos
refiramos a un fichero en texto (para usar las funciones de lectura/escritura para texto) y
b cuando sea binario y empleemos las funciones sorrecpondientes para ese modo.
Consultar man fopen para más información.
int fclose(FILE *stream);
Cierra un manejador de fichero previamente abierto. Es NECESARIO cerrar los ficheros
cuando se acaban de utilizar.
Lectura/escritura binaria
El posicionado del fichero se desplaza tantos bytes como se hayan leido. La función
devuelve el número de objetos (no bytes) leídos, o un valor inferior si se llega al final de
fichero u ocurre un error (en ese caso puede devolver cero).
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
La función fwrite escribe nmemb objetos, cada uno de tamaño en bytes size, hacia el
fichero apuntado por el manejador stream, y obtiene los objetos de la memoria apuntada
por ptr.
El posicionado del fichero se desplaza tantos bytes como se hayan escrito. La función
devuelve el número de objetos (no bytes) escritos, o un valor inferior si ocurre un error.
Lectura/escritura texto
Menajeador Descripción
stdin Entrada standard (habitualmente teclado)
stdout Salida standard (habitualmente pantalla)
stderr Error standard (habitualmente pantalla)
Ejemplos
#include<stdio.h>
int
main() {
FILE *fd;
char buffer[32];
/* lo cerramos */
fclose(fd);
fclose(fd);
/* se acabó */
return 1;
}