我这样写.错误说"c:17:9:错误:函数'退出'的参数太少"但改为'exit(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);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
正如在评论中所说,你已经定义为什么EXIT_FAILURE都没有,顺便说一下EXIT_FAILURE,stdlib.h所以你不需要定义它,你只需要包含它并使用它.如果您想定义它,您的自己会这样:
#define EXIT_FAILURE -1 /* A number not equal to 0 */
#define EXIT_SUCCESS 0