Using perror(), strerror_s() and _strerror_s()
Compiler: Visual C++ Express Edition 2005
Compiled on Platform: Windows XP Pro SP2
Header file: Standard
Additional library: none/default
Additional project setting: Set project to be compiled as C
Project -> your_project_name Properties -> Configuration Properties -> C/C++ -> Advanced -> Compiled As: Compiled as C Code (/TC)
Other info: none
To do: Displaying error strings
To show: Using perror(), strerror_s() and _strerror_s()
/* Several error message functions - perror(), strerror_s() and _strerror_s() */
#include <windows.h>
#include <fcntl.h>
#include <sys.h>
#include <io.h>
#include <share.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define SIZE 100
int main(void)
{
char fname[20] = "testnofile.txt";
int fhndl;
char buf[SIZE];
char buf1[SIZE];
size_t sizeInBytes = 100;
/* Try to open non-existing file */
_sopen_s(&fhndl, fname, _O_RDONLY, _SH_DENYNO, _S_IREAD | _S_IWRITE );
if(fhndl == -1)
{
/* Using the possible ways to create error message */
perror("\nUsing perror()");
/* printf("Using strerror(): %s\n", strerror(errno)); */
strerror_s(buf, SIZE, errno);
printf("\nUsing strerror(): %s\n", buf);
/* printf(_strerror("_strerror()")); */
_strerror_s(buf1, sizeInBytes, "_strerror()");
printf("\nUsing ");
printf(buf1);
printf("\n");
printf("\nThere is some error opening %s file. Error code: %d.\n", fname, GetLastError());
}
else
{
printf("Open %s for reading succeeded!\n", fname);
_close(fhndl);
}
return 0;
}
Output example:
Using perror(): No such file or directory
Using strerror(): No such file or directory
Using _strerror(): No such file or directory
There is some error opening testnofile.txt file. Error code: 2.
Press any key to continue . . .