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

时间:2015-10-30 13:11:17

标签: 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);
}

1 个答案:

答案 0 :(得分:5)

正如评论中所述,您已将EXIT_FAILURE定义为什么都没有,顺便在EXIT_FAILURE中定义stdlib.h,因此您无需定义它,只需将其包含并使用即可。如果你想定义它,你的自己会这样:

#define EXIT_FAILURE -1 /* A number not equal to 0 */ #define EXIT_SUCCESS 0