Les ferrors effectuent-ils plusieurs écritures?

Le ferror dans cet exemple vérifie-t-il les deux ferror de ferror ou juste la seconde?

 FILE * myout; if ((myout = fopen("Assignment 11.txt", "a")) != NULL) { fprintf(myout, "First print ", str1); fprintf(myout, "Second print", str1); if (ferror(myout)) fprintf(stderr, "Error printing to file!"); fclose(myout); } 

Si une erreur survient, elle ne sera pas réinitialisée à moins que clearerr soit appelé sur votre stream. Par conséquent, une erreur survenant sur l’une des deux écritures est enregistrée.

de la page de manuel de ferror :

La fonction ferror () teste l’indicateur d’erreur pour le stream pointé par stream et renvoie une valeur différente de zéro si elle est définie. L’indicateur d’erreur ne peut être réinitialisé que par la fonction clearerr ().

Mais vous pouvez aussi simplement utiliser le fprintf retour fprintf pour voir si quelque chose ne va pas:

Si une erreur de sortie est rencontrée, une valeur négative est renvoyée.

( page de manuel de fprintf )

Comme ceci (merci Jonathan pour avoir signalé les erreurs dans le post original):

 if (fprintf(myout, "First print %s\n", str1)<0) fprintf(stderr, "Error printing to file #1!"); if (fprintf(myout, "Second print %s\n", str1)<0) fprintf(stderr, "Error printing to file #2!");