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