#include #include #include #include /* * program perror_demo.c * purpose show how errno is set by syscalls * and how perror prints the associated message * usage perror_demo * action tries to open() a file for a given mode * then, if error, prints errno and message */ int main() { char name[100]; /* filename */ int mode; /* second arg to open */ int rv = 0; /* program status reprt */ printf("Open what file or dir? "); fgets(name, 100, stdin); name[strlen(name)-1] = '\0'; printf(" Open %s for 0,1, or 2? ", name); scanf("%d", &mode); if ( open( name, mode ) == -1 ){ printf("Oh No!, errno %d just occurred\n", errno); perror( name ); /* print message */ printf("The error message is %s\n", strerror(errno)); rv = 1; } else printf("%s opened ok\n", name ); return rv; }