Niestety nie jest ona bezpieczna w programach wielowątkowych, gdzie należy korzystać z trudniejszej w użyciu: int strerror_r(int errnum, char *buf, size_t n);
Przykład #include <stdio.h> #include <stdlib.h> #include <errno.h>
int main(int argc, char **argv) { int files = argc - 1; FILE *file; char *fname; int i;
if (!files) { fprintf(stderr, "Usage: %s <files>\n", argv); return 1;
for (i = 1; i <= files; ++i) { fname = argv[i]; file = fopen(fname, "r"); if (file == NULL) { fprintf(stderr, "Error while trying to open '%s': %s\n", fname, strerror(errno)); } else { fprintf (stderr, "'%s' opened successfully\n", fname); fclose (file);
return 0; }
Przypisy
Kategoria:Unix