Я смотрю на следующий код в сообщении 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. Любые указатели или помощь будут оценены. Мне просто любопытно об этом; ничего не сломано.
Спасибо.