我是这样写的。错误:"c:17:9:错误:函数“退出”的参数太少,但改为“退出(1)”,然后只说警告而运行。为什么我不能使用'exit(EXIT_FAILURE);'?
#include <stdio.h>
#include <unistd.h>
#define EXIT_FAILURE /*implementation defined*/
#define EXIT_SUCCESS /*implementation defined*/
int main(void)
{
char *swd;
int ret;
swd = getcwd(NULL,0);
printf("1.%s\n",swd);
printf("2.%s\n",getcwd(NULL,0));
if(!swd){
perror("getcwd");
exit(EXIT_FAILURE);
}
ret = chdir("dd");
//printf("3.%s\n",ret);
printf("4.%s\n",getcwd(NULL,0));
if(ret){
perror("chdir");
}
ret = chdir(swd);
printf("5.%s\n",getcwd(NULL,0));
enter code here
if(ret){
perror("chdir");
exit(1);
}
free(swd);
}发布于 2015-10-30 13:16:58
正如注释中所说的,您已经将EXIT_FAILURE定义为nothing,顺便说一句,EXIT_FAILURE是在stdlib.h中定义的,所以您不需要定义它,只需包含并使用它。如果你喜欢定义它,你自己就这样做:
#define EXIT_FAILURE -1 /* A number not equal to 0 */ #define EXIT_SUCCESS 0
https://stackoverflow.com/questions/33436819
复制相似问题