exit (Program support) – C 中文开发手册

[
  •   C 语言中文开发手册

    exit (Program support) - C 中文开发手册

    在头文件<stdlib.h>中定义
    void exit(int exit_code); (直到C11)
    _Noreturn void exit(int exit_code); (自C11以来)

    导致正常程序终止发生。执行几个清理步骤:传递给atexit的函数被调用,按照注册的相反顺序所有C流都被刷新并关闭由tmpfile创建的文件被删除控制权返回到主机环境。 如果exit_code为零或EXIT_SUCCESS,则返回实现定义的状态,表示成功终止。 如果exit_code为EXIT_FAILURE,则返回实现定义的状态,表示不成功终止。 在其他情况下,返回实现定义的状态值。

    注意

    用at_quick_exit注册的函数不会被调用。如果一个程序多次调用exit或者调用exit和quick_exit,则行为是不确定的。如果在调用使用atexit注册的函数期间,行为是不确定的,函数将以longjmp退出。从主函数返回,通过返回语句或到达函数结尾,执行exit(),将return语句的参数(如果使用隐式返回,则返回0)作为exit_code。

    参数

    exit_code - 退出程序的状态

    返回值

    (none).

    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
        FILE *fp = fopen("data.txt","r");
        if (fp == NULL) {
           fprintf(stderr, "error opening file data.txt in function main()\n");
           exit(1);
        }
        fclose(fp);
        printf("Normal Return\n");
    }

    输出:

    error opening file data.txt in function main()

    参考

    C11标准(ISO / IEC 9899:2011): 7.22.4.4退出功能(p:351-352) C99标准(ISO / IEC 9899:1999): 7.20.4.3退出功能(p:315-316) C89 / C90标准(ISO / IEC 9899:1990): 4.10.4.3退出功能

    扩展内容

    abort 导致程序异常终止(不清除)(功能)
    atexit 注册要在exit()调用(函数)上调用的函数
    quick_exit(C11) 导致正常程序终止而没有完全清理(功能)

    | 用于退出的C ++文档|

  •   C 语言中文开发手册
    ]
    转载请保留页面地址:https://www.breakyizhan.com/c-3/27207.html

    posted on 2020-07-05 11:14  MrAit  阅读(187)  评论(0编辑  收藏  举报

    导航