Quizas ver primero: Pointers en C
# Trabajar con Archivos en C utilizando File Pointers
Una forma de guardar persistence data (datos persistentes) es usar archivos para guardar los datos que deseamos (pueden ser de operaciones, tecleo, otros archivos, etc) que pueden ocurrir en la ejecucion de un programa.
Una forma de trabajar con ellos en C es utilizar los File Pointers (FILE*) y sus funciones. Para empezar a trabajar con ellos necesitamos incluir la libreria ‘stdio.h’ en nuestros headers.
Las funciones que revisaremos hoy son las siguientes: fopen(), fclose(), fputc(), fgetc(), fread() y fwrite() . Para leer mas sobre ellas y otras funciones podemos consultar la documentacion oficial.
fopen(<filename>, <operation>). Recibe como parametros: filename, el archivo (con extension). operation, el tipo de operacion a realizar (r, w o a - read, write y append). Devuelve un puntero FILE*.
fclose(<file pointer>). Cierra el FILE* pointer para no trabajar mas con ese archivo.
fgetc(<file pointer>). Recibe un FILE* pointer como parametro, el cual debio ser escrito con la operacion R - Read. Retorna el siguiente caracter del archivo, una vez retornado, se mueve hacia el siguiente para sus futuros llamados hasta alcanzar el EOF (End Of File).
fputc(<character>, <file pointer>). Como primer parametro recibe el caracter el cual va a ser escrito. Como segundo recibe un FILE* pointer como parametro, el cual debio ser escrito con la operacion W - Write si se quiere sobre-escribir o A - Append si se quiere agregar contenido al archivo.
fread(<buffer>, <size>, <qty>, <file pointer>). Como primer parametro tenemos un pointer, usualmente un array; que servira como Buffer, para pasar informacion del archivo a otro lado. Como segundo parametro el tamaño que tiene cada parte de nuestro buffer (sizeof es util aqui). Como tercer parametro la cantidad de veces que se repetira ese tamaño, regularmente es el tamaño de nuestro array, finalmente como cuarto parametro el FILE* pointer desde el cual vamos a leer. Al igual que en fgetc este debe estar inicializado con la operacion R - Read.
fwrite(<buffer>, <size>, <qty>, <file point>). Exactamente el contrario de fread, en vez de escribir desde el archivo hacia el buffer, escribimos desde el buffer hacia el archivo.
Como mencionamos, estas no son todas las funciones utiles dentro de stdio.h, asi que veamos algunas que pueden ser utiles.
Siguiente: