• Domingo 15 de Diciembre de 2024, 00:53

Autor Tema:  ferror en linux  (Leído 852 veces)

Bool

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
ferror en linux
« en: Viernes 3 de Octubre de 2008, 09:41 »
0
Tengo este código:

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7.     FILE *pf = NULL;
  8.     char *cadena = "esta cadena nunca sera escrita";
  9.  
  10.     if ((pf = fopen("datos", "r")) == NULL)
  11.     {
  12.         perror("datos");
  13.         return EXIT_FAILURE;
  14.     }
  15.     fprintf(pf, "%sn", cadena);
  16.  
  17.     if (ferror(pf))
  18.     {
  19.         perror("Error al escribir en el fichero");
  20.         clearerr(pf);
  21.     }
  22.     fclose(pf);
  23. }
  24.  
  25.  
  26.  

Con code:blocks en windows va perfecto, sin embargo en mi linux con gcc, el segundo perror no lo ejecuta... asi  que ferror siempre devuelve un cerapio :S

Alguién sabe por qué no puede funcionar?

Venga, gracias anticipadas :)

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ferror en linux
« Respuesta #1 en: Viernes 3 de Octubre de 2008, 10:47 »
0
Es probable que al haber definido el fichero como sólo lectura fprintf() no dé ningún error, simplemente se ignore, es decir, no se escribe nada en el fichero, pero tampoco se genera un error.