errno y perror en C
Cuando una llamada falla, errno dice por qué, y perror lo imprime con tu prefijo.
#include <errno.h>
#include <stdio.h>
#include <string.h>
int open_or_report(const char *path) {
errno = 0;
FILE *f = fopen(path, "r");
if (f == NULL) {
perror("fopen");
fprintf(stderr, " (%s: %s)\n", path, strerror(errno));
return 0;
}
fclose(f);
return 1;
}
Cómo funciona
- Pon
errnoen cero antes de la llamada que piensas probar. perrorescribe a stderr;strerrorte da el texto.- Solo revisa errno después de una llamada que reportó falla.
Palabras clave y builtins usados aquí
FILENULLcharconstifintreturn
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 261
- Tokens
- 80
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 48 segundos.
Paso 3 de 3 en Posicionamiento y streams; paso 11 de 12 en Archivos y E/S.