Syntax
#include <string.h> char *_strerror(char *string);Description
Your string message can be a maximum of 94 bytes.
Unlike perror, _strerror by itself does not print a message. To print the message returned by _strerror to stdout, use a printf statement similar to the following:
if ((access("datafile",2)) == -1) printf(stderr,_strerror(NULL));
You could also print the message to stderr with an fprintf statement.
To produce accurate results, call _strerror immediately after a library function returns with an error. Otherwise, subsequent calls might write over the errno value.
If string is equal to NULL, _strerror returns a pointer to a string containing the system error message for the last library call that produced an error, ended by a new-line character (\n).
If string is not equal to NULL, _strerror returns a pointer to a string containing:
This example shows how _strerror can be used with the fopen function.
#include <string.h>#include <stdio.h> #define INFILE "_strerro.in" #define OUTFILE "_strerro.out" int main(void) { FILE *fh1,*fh2; fh1 = fopen(INFILE, "r"); if (NULL == fh1) /* the error message goes through stdout not stderr */ printf(_strerror("Open failed on input file")); fh2 = fopen(OUTFILE, "w+"); if (NULL == fh2) printf(_strerror("Open failed on output file")); else printf("Open on output file was successful.\n"); if (fh1 != NULL) fclose(fh1); if (fh2 != NULL) fclose(fh2); remove(OUTFILE); return 0; /**************************************************************************** The output should be: Open failed on input file: The file cannot be found. Open on output file was successful. ****************************************************************************/ }Related Information