我使用'exit(EXIT_FAILURE);'但是我得到一个错误

장승호*_*장승호 1 c compiler-errors

我这样写.错误说"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