Sunteți pe pagina 1din 2

Desarrollo de funciones en el sistema informático Ficheros 2

Uso de ficheros mediante Streams


Desplazamiento por ficheros

Cuando se lee de un fichero o se escribe, se avanza tantos bytes como se hayan leído o
escrito. Cada fichero tendrá un apuntador para indicar la posición donde se va a efectuar la siguiente
operación de lectura/escritura.

1.- Funciones para desplazarse por ficheros

rewind – Apunta el indicador del fichero al principio del mismo.


void rewind(FILE *fichero)

ftell – Devuelve el desplazamiento que hay desde el principio del fichero hasta la
posición actual.
long int ftell(FILE *fichero)

Ejemplo de uso:
long int posicion;
FILE *fichero;
posicion=ftell(fichero);
Comprobación:
Si el valor devuelto es negativo, hay un error.

Nota: Se usa en combinación con fseek.

fseek – Nos mueve en el fichero a la posición indicada.


int fseek (FILE *fichero, long int desplazamiento, int origen)

En origen, se usarán los siguientes valores (Usar su valor entero puede variar según
el compilador):
SEEK_SET – Inicio del fichero.
SEEK_CUR – Posición actual en el fichero.
SEEK_END – Final del fichero.
Ejemplo de uso:
long int desplazamiento;

fseek(fichero, desplazamiento, SEEK_SET);


Nota: Se usa en combinación con ftell.

fgetpos – Guarda nuestra posición actual.


int fgetpos (FILE *fichero, fpos_t *posicion)

Se usa para guardar la posición actual el tipo de dato fpos_t declarado en stdio.h
Ejemplo de uso:
fpos_t posicion;
FILE *fichero;

fgetpos (fichero, &posicion);


Nota: Se usa en combinación con fsetpos.
Página 1 de 2
Desarrollo de funciones en el sistema informático Ficheros 2

fsetpos – Cambia nuestra posición en el fichero indicado.


int fsetpos (FILE *fichero, fpos_t *posicion)

Ejemplo de uso:
fpos_t posicion;
FILE *fichero;

fsetpos (fichero, &posicion);

Nota: Se usa en combinación con fgetpos.

Ejercicios:

0.- Crear un fichero makefile para el ejercicio 1.

1.- agenda_texto.c – El programa guardará el nombre, la dirección, el e-mail y la edad de una serie
de contactos en el fichero de texto “datos_agenda.txt”. El separador de campos será el salto de
línea. Se mostrará un menú principal que se repetirá hasta elegir salir del programa. Se deben
mostrar las opciones “Añadir contacto”, “consultar contacto” y “modificar contacto”. Todos ellos
implementados en funciones separadas.

Página 2 de 2

S-ar putea să vă placă și