I am looking at the following code in an SO "Low Quality" post to make sure the sample works, and my question is why can't I print errno's value?
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main(){
FILE *fp;
errno = 0;
fp=fopen("Not_exist.txt","r");
if(fp == NULL && errno == ENOENT)
perror("file not exist");
return 0;
}
Here is what happens when I try to print the value:
(gdb) p errno
Cannot find thread-local variables on this target
(gdb)
I can print fp's value just fine. As you would expect it's value is 0x00
.
I looked at /usr/include/errno.h
and a lot of the other include files included as part of errno.h
, and I cannot figure out how errno is defined. Any pointers or help would be appreciated. I'm just curious about it; nothing is broken.
Thank you.