Как исправить ошибку «игнорирование возвращаемого значения»? - PullRequest
0 голосов
/ 28 февраля 2020

Я не знаю, почему я получаю эту ошибку с chdir. Я пытался использовать if(chdir(C->args[1])==1); else, но он не работает:

if(C->arg_count > 1)
{
    chdir(C->args[1]);
}
else
{
    chdir(getenv("HOME"));
}

Это ошибка:

error: ignoring return value of ‘chdir’, declared with attribute warn_unused_result [-Werror=unused-result]
    chdir(C->args[1]);
    ^~~~~

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

Ошибка не требует пояснений. Вам необходимо проверить возвращаемое значение:

if(chdir("...") == -1)
{
    perror("chdir");
    /* return error of some sort, don't continue */
}

Обязательно замените комментарий выше фактической ошибкой, такой как return -1; (в функции) или return EXIT_FAILURE;main).

Кроме того, 1 неявно преобразуется в unsigned char. Вам не нужен актерский состав.

0 голосов
/ 28 февраля 2020

Функция объявлена ​​со специальным атрибутом, который выдает предупреждение, если вы не проверяете возвращаемое значение.

Если вы действительно не заинтересованы в том, является ли функция успешно, вы можете привести возвращаемое значение к void, чтобы указать, что оно не используется.

(void)chdir(getenv("HOME"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...