Hola, gente, que tengan un muy buen día. -
La duda es que se debe hacer cuando la función fclose intenta cerrar un archivo y no lo logra, ¿hay alguna manera de informar el error con detalle?, ¿se debe intentar una segunda vez?, ¿que puedo hacer como programador para ayudar a solucionar el problema?. -
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv){
char frase[] = "arequito, centro soguero del pais";
FILE *ptrFrase = NULL;
if(!(ptrFrase = fopen("frase.txt", "w"))){
printf( "\n Error al abrir %s Para escribir. Finaliza el programa.", frase );
exit(1);
}
fprintf(ptrFrase, "%s", frase);
if( fclose( ptrFrase )!=0){
printf( "\n No se ha podido cerrar el fichero %s.", frase );
}
return EXIT_SUCCESS;
}
//https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos#fprintf
Es todo por el momento, espero que se entienda cuál es mi desconocimiento. -
Saludos.
Buenas noches,tras haber leído el tema te dejo una solución a tu dilema,espero que con esto te ayude.
El código y la explicación :
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv){
char frase[] = "arequito, centro soguero del pais";
FILE *ptrFrase = NULL;
if(!(ptrFrase = fopen("frase.txt", "w"))){
printf( "\n Error al abrir %s Para escribir. Finaliza el programa.", frase );
exit(1);
}
fprintf(ptrFrase, "%s", frase);
if(fclose( ptrFrase ) == EOF){ /*Fijate que según el link de documentacion "wikilibros.com",se explica que fclose devuelve
0 si se cierra correctamente, y en caso contrario devuelve EOF,por lo que si
devuelve EOF,es cuando se tiene que entrar en este bucle.
Con esto se comprueba si falla o no,ya que mostraria la frase de abajo si no hubiera
logrado cerrarlo correctamente.*/
printf( "\n No se ha podido cerrar el fichero\n");
system("PAUSE");
}
return EXIT_SUCCESS;
}
Un saludo.
Anthony.
Hola, AnthonyS.
Muchas gracias por ocuparte del tema, creo que no entendiste bien mis inquietudes. -
¿A cuál de estas 3 preguntas respondes con tu post?
Citarhay alguna manera de informar el error con detalle?, ¿se debe intentar una segunda vez?, ¿que puedo hacer como programador para ayudar a solucionar el problema?. -
Gracias nuevamente. -
Daniel