exit()和aexit()

来源:互联网 发布:如何不越狱下载软件 编辑:程序博客网 时间:2024/06/07 09:03

1.exit()函数:

函数名: exit()

所在头文件:stdlib.h

功 能: 关闭所有文件,终止正在执行的程序。

exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值

exit(x)(x不为0)都表示异常退出

exit(0)表示正常退出

函数声明:void exit(int state);
          exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作 系统,返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。

2.atexit()函数:

       如果需要在main退出后再执行一段代码,可以使用aexit()函数注册一个函数。

 aexit()函数介绍:

函数名: atexit

头文件:#include<stdlib.h>

功能: 注册终止函数(main执行结束后调用的函数)

用法: int atexit(void(*func)(void));

注意:按照ISO C的规定,一个进程中最多可以用atexit()注册32个处理函数,这些函数将由exit自动调用。atexit()注册的函数类型应为不接受任何参数的void函数,exit调用这些注册函数的顺序与它们 注册时候的顺序相反,也即最先注册的最后调用,最后注册的最先调用。同一个函数如若登记多次,则也会被调用多次。

函数实例:
#include <stdio.h>#include <stdlib.h>int atexit(void (*function)(void));void fn1(void);void fn2(void);void fn3(void);void fn4(void);int main(){    atexit(fn1);    atexit(fn2);    atexit(fn3);    atexit(fn4);    return 0;} void fn1(){    printf("next.\n");}void fn2(){    printf("executed ");}void fn3(){    printf("is ");}void fn4(){    printf("This ");} 

main函数退出之后才执行atexit()注册的函数,上面的程序输出:This is executed next.



原创粉丝点击