Я смотрю следующий код в SO "Низкое качество", чтобы убедиться, что образец работает, и мой вопрос в том, почему я не могу напечатать значение errno?
#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;
}
Вот что происходит, когда я пытаюсь напечатать значение:
(gdb) p errno
Cannot find thread-local variables on this target
(gdb)
Я могу напечатать значение fp просто отлично. Как и следовало ожидать, это значение равно 0x00
.
Я посмотрел на /usr/include/errno.h
, и многие другие включили файлы, включенные как часть errno.h
, и я не могу понять, как определяется errno. Любые указатели или помощь будут оценены. Мне просто интересно это; ничего не сломано.
Спасибо.