Как узнать, что означает «errno»? - PullRequest
197 голосов
/ 02 февраля 2009

При звонке execl(...) я получаю errno=2. Что это значит? Как я могу узнать значение этого errno?

Ответы [ 15 ]

2 голосов
/ 02 февраля 2009

Вызов

perror("execl");

в случае ошибки.

Пример:

if(read(fd, buf, 1)==-1) {
    perror("read");
}

Интересны также страницы errno(3) и perror(3) ...

1 голос
/ 06 ноября 2016

Введите sudo apt-get install moreutils, а затем после установки введите errno 2. Вы также можете использовать errno -l для всех номеров ошибок или просмотреть только файловые, отправив его на grep, например: errno | grep file.

0 голосов
/ 22 мая 2014

У меня есть следующая функция в моем файле .bashrc - он ищет значение errno из заголовочных файлов (может быть либо /usr/include/errno.h, /usr/include/linux/errno.h и т. Д. И т. Д.)

Работает, если на машине установлены заголовочные файлы; -)

Обычно в заголовочном файле есть ошибка + далее идет пояснение в комментарии; что-то из следующего:

. / Asm-generic / errno-base.h: #define EAGAIN 11 / * Попробуйте еще раз * /

function errno()
{
    local arg=$1

    if [[ "x$arg" == "x-h" ]]; then
        cat <<EOF
        Usage: errno <num>
        Prints text that describes errno error number
        EOF
    else
        pushd /usr/include
        find . -name "errno*.h" | xargs grep   "[[:space:]]${arg}[[:space:]]"
        popd
    fi
}
0 голосов
/ 02 февраля 2009

Когда вы используете strace (в Linux) для запуска вашего бинарного файла, он выведет результаты системных вызовов и значение номера ошибки. Иногда это может быть полезно для вас.

0 голосов
/ 02 февраля 2009

Это значит:

Файл или каталог не найдены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...