A lot of C function calls return a -1
or NULL
in case of an error, so quick test on these return values are easily done with for instance an ‘if statement’.
When a function is called in C, a variable named as errno
is automatically assigned a code (value) which can be used to identify the type of error that has been encountered. Its a global variable indicating the error occurred during any function call and defined in the header file errno.h
.
Below is a list of few different errno
values and its corresponding meaning:
errno value | Error |
---|---|
1 | Operation not permitted |
2 | No such file or directory |
3 | No such process |
4 | Interrupted system call |
5 | I/O error |
6 | No such device or address |
7 | Argument list too long |
8 | Exec format error |
9 | Bad file number |
10 | No child processes |
11 | Try again |
12 | Out of memory |
13 | Permission denied |
Example:
FILE *fp;
fp = fopen("file.txt ", "r");
printf("Value of errno: %d\n ", errno);
strerror()
returns a pointer to the textual representation of the current errno
value:
printf("The error message is : %s\n", strerror(errno));
perror
: It displays the string you pass to it, followed by a colon, a space, and then the textual representation of the current errno
value.
perror("Message from perror");
Related: exception handling, return,abort,exit