exit()函数

**

exit()函数与return关键字

**
语法:

	#include <stdlib.h>
	void exit(int exit_code);

功能:

终止程序的执行。参数exit_code 传递给返回值,通常零值表示正常结束,非零值表示应错误返回。 

用法:

exit(0)表示程序正常, exit(1)exit(-1)表示程序异常退出,exit(2)表示表示系统找不到指定的文件

特点:

	单独的进程是返回给操作系统的。如果是多进程,是返回给父进程的;
	exit()就是当前进程把控制权返回给调用该程序的程序,括号里的是返回值,告诉调用程序该程序的运行状态。
	
	exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。
	exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。
	exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程;

return与exit()

	1.return返回函数值,exit是函数
	2.return是语言级别的,表示堆栈的返回;exit是系统级别的调用,表示进程的结束
	3.return是C语言提供的;exit是操作系统提供的或库函数提供
	4.return是返回函数值并退出函数;exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程

atexit终止处理程序

	ISO C规定,一个进程最多可登记32个终止处理函数,这些函数由exit按登记相反的顺序自动调用。如果同一函数登记多次,也会被调用多次。

	语法:    
		#include <stdlib.h>
		int atexit(void (*func)(void));
	功能:当程序终止执行时,函数调用函数指针func所指向的函数。可以执行多重调用(至少32),这些函数以其注册的倒序执行。执行成功返回零值,失败则返回非零值。

以下面的程序为例:

eg:
		#include <stdlib.h>
		static void myexit1()
		{
			 printf("first exit handler\n");
		}
		static void myexit2()
		{
			 printf("second exit handler\n");
		}
		int main()
		{
			 atexit(my_exit2)atexit(my_exit1)atexit(my_exit1)printf("main is done\n");
			 return 0;
		}

			 运行结果:
			 $ ./a.out
			 main is done
			 first exit handler
			 first exit handler
			 second exit handler
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值