我不知道为什么我使用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]);
    ^~~~~

最佳答案

该错误是不言自明的。您需要检查返回值:

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


确保将上面的注释替换为实际错误,例如return -1;(在函数中)或return EXIT_FAILURE;(在main中)。

同样,1被隐式转换为unsigned char。您不需要演员表。

关于c - 如何解决“忽略返回值”错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60458168/

10-10 05:08