C 我使用';退出(退出失败)';,但是我得到了一个错误
我这样写。 错误说明“c:17:9:error:函数'exit'的参数太少” 但更改为“退出(1)”,然后只说警告,但要运行。 为什么我不能使用“退出(退出失败)”C 我使用';退出(退出失败)';,但是我得到了一个错误,c,compiler-errors,C,Compiler Errors,我这样写。 错误说明“c:17:9:error:函数'exit'的参数太少” 但更改为“退出(1)”,然后只说警告,但要运行。 为什么我不能使用“退出(退出失败)” #包括 #包括 #定义退出\u失败/*已定义实现*/ #定义退出\成功/*已定义实现*/ 内部主(空) { char*社署; int ret; swd=getcwd(NULL,0); printf(“1.%s\n”,社署); printf(“2.%s\n”,getcwd(NULL,0)); 如果(!社署){ 佩罗(“getcwd”)
#包括
#包括
#定义退出\u失败/*已定义实现*/
#定义退出\成功/*已定义实现*/
内部主(空)
{
char*社署;
int ret;
swd=getcwd(NULL,0);
printf(“1.%s\n”,社署);
printf(“2.%s\n”,getcwd(NULL,0));
如果(!社署){
佩罗(“getcwd”);
退出(退出失败);
}
ret=chdir(“dd”);
//printf(“3.%s\n”,ret);
printf(“4.%s\n”,getcwd(NULL,0));
如果(ret){
perror(“chdir”);
}
ret=chdir(社会福利署);
printf(“5.%s\n”,getcwd(NULL,0));
在这里输入代码
如果(ret){
perror(“chdir”);
出口(1);
}
免费(社署);;
}
正如您在评论中所说,您已将退出故障定义为无,顺便说一句,退出故障是在stdlib.h中定义的,因此您无需定义它,只需包含并使用它即可。如果您想自己定义它,请执行以下操作:
#定义退出失败-1/*一个不等于0的数字*/
#定义退出成功0
您已将退出失败定义为无意义,因此编译器会看到EXIT()
。包括
,用于执行定义的退出故障的定义。(定义的实现是指编译器的实现,而不是你的程序。)@MOehm:我本来想把它作为一个aswer发布的,但你在我之前是作为一个注释发布的。这正是这个问题的正确答案。@running.t:我只是做了一个评论,因为这似乎是一个微不足道的问题。如果你把它写下来作为回答,我会删除评论。
#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);
}