Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Manipulación de Archivos en C: Flujos y Sistemas de Archivos, Diapositivas de Programación C

Sistemas OperativosProgramación en CBase de datosAlgoritmos y Estructuras de Datos

Los conceptos básicos de Flujos y Sistemas de Archivos en el lenguaje de programación C. Se abordan los conceptos de bytes, archivos, directorios, tablas de archivos y el uso de funciones como fopen(), fclose(), fseek(), feof() y otras para manipular archivos. Además, se presentan ejemplos de cómo leer y escribir datos en archivos.

Qué aprenderás

  • ¿Qué es un flujo en C?
  • ¿Qué funciones se usan para manipular archivos en C?
  • ¿Cómo se leen y escriben datos en archivos en C?
  • ¿Qué es un archivo en C?
  • ¿Cómo se crea un flujo en C?

Tipo: Diapositivas

2021/2022

Subido el 11/06/2022

crerek
crerek 🇲🇽

2 documentos

1 / 26

Toggle sidebar

Documentos relacionados


Vista previa parcial del texto

¡Descarga Manipulación de Archivos en C: Flujos y Sistemas de Archivos y más Diapositivas en PDF de Programación C solo en Docsity! Archivos Estructuras de datos Flujos Un flujo (stream) es una serie de bytes que viajan de un lugar a otro de la computadora Flujos Para que la información viaje a otro lugar de la computadora, hay que crear un flujo. Archivos Un archivo es un conjunto de bytes almacenado en un medio no volátil (Disco duro, USB drive) archivo Archivos Los bytes se distribuyen de forma secuencial en el medio, aunque en la computadora no los veamos así… # i n c l u d e < s t d i o . h > \ n # i n c l u d e < s t d l i b . Función fopen() La función fopen() se usa para crear un flujo de datos #include <stdio.h> FILE *fopen(char *archivo,char *modo) • Recibe: –archivo: Cadena con el nombre del archivo físico a conectar –Modo: Modo de apertura (ver siguiente acetato) • Regresa: –FILE *: Direccion de memoria con la estructura creada –NULL (0): Cuando falla en la apertura del flujo. Función fclose() La función fclose() se usa para cerrar un flujo abierto con fopen() garantizando que toda la información se escriba correctamente. #include <stdio.h> int fclose(flujo) • Recibe: flujo: *FILE con el flujo abierto con fopen() • Regresa: 0: Si el flujo se cerró con éxito. -1 (o EOF): Si falló el cierre Funciones comunes del sistema de archivos en C Nombre Función Sintaxis Ejemplo fopen() Abre una corriente FILE *fopen(char *archivo,char *modo) fp = fopen ( "fichero.in", "r" ); fclose() Cierra una corriente int fclose(flujo) fclose(fichero) fseek() Salta a una cierta posición de un fichero int fseek (FILE* fichero, long desplazamiento, int desde); fseek(fichero, -10, SEEK_CUR); feof() Devuelve verdadero si se alcanzó la marca EOF int feof(FILE *fichero); !feof(fichero) ferror() Determina si una operación con archivos produce un error. Devuelve verdadero si ha ocurrido un error int ferror(FILE *fp) ferror(fp) rewind() Pone el localizador de posición de archivo al comienzo void rewind(FILE *stream rewind(fp) remove() Borra un archivo int remove(char *nombre de archivo) remove(filename) rename() Renombra un archivo int rename(const char *old_filename, const char *new_filename) rename(oldname, newname) File Pointer Al abrir un flujo, el sistema operativo asigna un Apuntador a archivo o File Pointer (FP). El File Pointer apuntará al siguiente byte en ser leído. Cada operación de lectura/escritura mueve el FP # i n c l u d e < s t d i o . h > \ n # i n c l u d e < s t d l i b . FP End OF File (EOF) El sistema operativo asigna un carácter especial llamado Fin de Archivo o End of File (EOF) al último byte del archivo. FP s e ” ) ; \n } \n E O F Función feof() La función feof() checa si el fin de archivo (EOF) del flujo asociado se ha alcanzado. #include <stdio.h> int feof(flujo) • Recibe: flujo: *FILE con el flujo abierto con fopen() • Regresa: 0: si no se ha alcanzado el Fin de Archivo (EOF). != 0: si se alcanzó Fin de Archivo (EOF) TRANSFORMO MI VIDA Escritura/Lectura a archivos binarios 1 //Escritura/Lectura de archivosbinario 2 sinclude «stdio.h>. 3 include <stdlib.h> 4 include <string.h> 5 6H struet agenda € 7 char nombre[20]5 s char apellido[28]5 3 char telefono[15]; sl); 12 — struct agenda registro; En 13 — int main) ES as FILE *fp5 15 E if ((fp - Fopent "agenda.dat", "ab" )) 18 printf( "no se puede abrir el archivo.An” ); 19 exit( 1); 20 3 a 2d wc = printfc "nombre: * ); 2 gets(registro.nombre):] 25 Af (stremp(registro.nombre,"")) 24 £ 2 E printé( "apellido: * ); 28 E gets(registra.apellAdo); 29 E printf "Telefono: " ); E | gets(registra.telefono); RR RONIEASA AE EE /* Guarda el registro en el archivo binario*/ furite( áregistro, sizeof(registro), 1, fp )5 , ) While (stremp(registro.nombre,"" DN fclose( fp )3 //Leer datos desde el archivo y mostrarLo en pantalLa FILE *fp25 3F ((fp2 - Fopen( "agenda.dat", “rb" )) == WuLL) £ printf( "No se puede abrir el archivo.An” )5 extt(1)5 1 while (Ifeof(fp2)) € Af (freadí Bregistro, sizeof(registro), 1, fp2 )) 4 printf("1n Los datos leidos desde el achivo son:inn"); : RsiWw", — registro.nombre ); registro. apellido); sin", registro.telefono)5 printr( “Teléfo , fclose( fp2 )5 Gbkep Esc/Lec archivos de texto “===> //escritura/lectura de archivos de texto sinclude <stdio.h> *tinclude <stdlib.h> sinclude <string.h> 1 struct agenda [ char nombre[20]3 char apellido[ 20]: char telefono[15]; ERES Struct agenda registro; 39 49 | //leer datos desde el archivo y mostrarlo en pantalla int main() 41 FILE *fp25 42 FILE *fp3 43 AF ((fp2 = fopen( "nombres. txt' )) = NULL) £ 9. printf( "No se puede abrir el fichero.An" )3 1f ((fp = fopen( "nombres.txt", “a” )) == NULL) ( 45 exit( 1); printF( "No se puede abrir el archivo.ln" ); 46 3 exit( 1); 47 48 while (Ifeof(Fp2)) £ 49 if (fread( £registro, sizeof(registro), 1, fp2 )) £ do í se printf("n Los datos leidos desde el achivo son:imin"); printf( "Nombre: * )3 51 printf( "Nombre: %sin", — registro.nombre )5 gets(registro.nombre); 52 primtf( "Apellido: %sin", registro.apellido); if (stromp(registro.mombre,”")) E , printf( "Teléfono: %sin", registro.telefono); t printf( "Apellido: “ )3 35 j gets(registro.apellido); 56 printf( "Teléfor » 37 Felose( fp2 ); gets(registro.telefono); st) /* Guarda el registro en el archivo */ fwrite( Bregistro, sizeof(registro), 1, fichero ); ) uhile (stremp(registro.nombre,"")!= 8)3 fclose( fp ); UPÁEP Ejemplo: 2.1 y 2.2 *include <stdio.h> ttinclude <stdlib.h> int main() li FILE *fp; float muestra[ 108]; int i; if ((fp=fopen ("prueba") "wb"))==MULL) t printf(“no puede abrirse el archivoin"); exit(1)5 7 for (i-85 1<100;1++) // muestra[i]=(float) 4; muestra[i]=1*1.05 //graba todo el arreglo de 190 flotantes al archivo de un solo paso furite(muestra, sizeof(muestra),1,fp)5 fclose(fp); TRANSFORMO MI VIDA //Programa que Lee un archivo binario con funcion fread() tinclude <stdio.h> tinclude <stdlib.h> int main() FILE *fpz float muestra[108]3 int á; if ((fp=fopen ("prueba","rb")) ¿A NULL) printf("no puede abrirse el archivoln"); exit(1)5 /flee el archivo entero en un paso fread(muestra, sizeof (muestra), 1,fp)5 for (i=1; icl00ji++) ¿ printf("X5.0f,", muestra[i])5 felose(fp); EP TRANSFORMO MI VIDA Estructura de datos Archivos Gbkep Transformo mi vida. Soy UPAEP
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved