Manejo de archivos

Solo disponible en BuenasTareas
  • Páginas : 9 (2164 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de junio de 2010
Leer documento completo
Vista previa del texto
Manejo de archivos
Ficheros
El estándar de C contiene funciones varias para la edición de ficheros, estas están definidas en la cabecera stdio.h y por lo general empiezan con la letra f, haciendo referencia a file. Adicionalmente se agrega un tipo FILE, el cual se usará como apuntador a la información del fichero. La secuencia que usaremos para realizar operaciones será la siguiente:
*Crear un apuntador del tipo FILE *
* Abrir el archivo utilizando la función fopen y asignándole el resultado de la llamada a nuestro apuntador.
* Hacer las diversas operaciones (lectura, escritura, etc).
* Cerrar el archivo utilizando la función fclose.
fopen
Ésta función sirve para abrir y crear ficheros en disco.
El prototipo correspondiente de fopen es:
FILE * fopen(const char *filename, const char *opentype);
Los parámetros de entrada de fopen son:
filename: una cadena que contiene un nombre de fichero válido. opentype: especifica en tipo de fichero que se abrirá o se creará.

Una lista de parámetros opentype para la función fopen son:
* "r" : abrir un archivo para lectura, el fichero debe existir.
* "w" : abrir un archivo para escritura, secrea si no existe o se sobreescribe si existe.
* "a" : abrir un archivo para escritura al final del contenido, si no existe se crea.
* "r+" : abrir un archivo para lectura y escritura, el fichero debe existir.
* "w+" : crear un archivo para lectura y escritura, se crea si no existe o se sobreescribe si existe.
* "a+" : abrir/crear un archivo para lectura y escritura al final delcontenido

Adicionalmente hay tipos utilizando "b" (binary) los cuales no serán mostrados por ahora y que solo se usan en los sistemas operativos que no pertenecen a la familia de unix.
fclose
Esta función sirve para poder cerrar un fichero que se ha abierto.
El prototipo correspondiente de fclose es:
int fclose (FILE *stream);
Un valor de retorno cero indica que el fichero hasido correctamente cerrado, si ha habido algún error, el valor de retorno es la constante EOF.
Un ejemplo pequeño para abrir y cerrar el archivo llamado fichero.in en modo lectura:
#include

int main(int argc, char** argv)
{
FILE *fp;
fp = fopen ( "fichero.in", "r" );
fclose( fp );

return 0;
}
Como vemos, en el ejemplo se utilizó el opentype "r", que es para la lectura.
Otra cosa importante es que el lenguaje C no tiene dentro de si una estructura para el manejo de excepciones o de errores, por eso es necesario comprobar que el archivo fue abierto con éxito "if (archivo == NULL)". Si fopen pudo abrir el archivocon éxito devuelve la referencia al archivo (FILE *), de lo contrario devuelve NULL y en este caso se debera revisar la direccion del archivo o los permisos del mismo. En estos ejemplos solo vamos a dar una salida con un retorno de 1 que sirve para señalar que el programa termino por un error.
feof
Esta función sirve para determinar si el cursor dentro del archivo encontró el final (end offile). Existe otra forma de verificar el final del archivo que es comparar el caracter que trae fgetc del archivo con el macro EOF declarado dentro de stdio.h, pero este método no ofrece la misma seguridad (en especial al tratar con los archivos "binarios"). La función feof siempre devolverá cero (Falso) si no es encontrado EOF en el archivo, de lo contrario regresará un valor distinto de cero(Verdadero).
El prototipo correspondiente de feof es:
int feof(FILE *fichero);
rewind
Literalmente significa "rebobinar", sitúa el cursor de lectura/escritura al principio del archivo.
El prototipo correspondiente de rewind es:
void rewind(FILE *fichero);
Lectura
Un archivo generalmente debe verse como un string (una cadena de caracteres) que esta guardado en...
tracking img