我收到警告
warning: comparison between pointer and integer
在包含if
下一段代码的行上:
char cwd[1024];
if (getcwd(cwd, sizeof(cwd)) != (char*)NULL)
printf("%s\n",cwd);
else
error_print("error in pwd");
我需要如何解决以及需要解决什么问题?
你包括 unistd.h 吗?如果不是,则会出现错误,因为您的 C 编译器假定 getcwd 返回 int。
修复?包括 unistd.h
您是否包含了必要的 .h 以便编译器了解 getcwd 返回的内容?
您的 c 编译器的行为可能是从每个未定义的函数中假定一个 int 返回值。
在以下链接的返回类型部分,getcwd 在失败时返回 null。因此,而不是检查!= (char *)NULL
只是检查!= NULL
用这个修改行if (getcwd(cwd, sizeof(cwd)) != NULL)