errno - Returns error condition value
#include <errno.h>
The errno external variable contains the most recent error
condition set by a function. The symbolic values for errno
are listed in the intro reference page and in the ERRORS
section of the individual reference pages for each function.
The exec() functions set errno to a value of 0 (zero)
after successful completion. Typically, other functions
only set errno to a nonzero value.
The following program uses the value of errno to determine
why the requested file could not be opened. If errno has
one of the two tested values, the program prints an appropriate
message; otherwise, the program uses the error()
function to print out the appropriate message. This program
does not have to set errno to a value of 0 (zero)
because errno is tested only if the open() function has
failed.
#include <errno.h> #include <stdio.h> #include <string.h>
#include <fcntl.h> #include <sys/stat.h> #include
<sys/types.h> #define SLENGTH 80
main() {
char filespec[SLENGTH], *eol;
int opret;
while (TRUE) {
printf("Enter file to be checked: ");
fgets(filespec, SLENGTH, stdin);
if ((eol = strchr(filespec, '\n')) != NULL) {
*eol = '\0'; /* Replace newline with null */
if (*filespec == '\0') return; /* exit program
*/
opret = open(filespec,O_RDONLY,0);
if (opret > 0)
printf("%s: File exists\n",filespec);
else if (errno == ENOENT)
printf("%s: File does not exist\n",filespec);
else if (errno == ENOTDIR)
printf("%s: Prefix in path is not a directory\n",
filespec);
else
perror(filespec);
} else /* Line entered too long */
printf("Line entered is too long\n");
} }
To ensure that your programs are portable, you should not
explicitly declare errno to be an extern int in your program.
You should rely on the type int declaration in the
<errno.h> include file. Full use.
Functions: intro(2), perror(3), strerror(3)
errno(5)
[ Back ] |