欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

return、exit、_exit的区别

程序员文章站 2022-07-13 23:33:44
...

1.atexit注册进程终止处理函数,在进程结束时,atexit注册的函数会被执行。
2.atexit注册多个进程终止处理函数,先注册的后执行(先进后出,和栈一样)
3.return、exit和_exit的区别:return和exit效果一样,都是会执行进程终止处理函数,但是用_exit终止进程时并不执行atexit注册的进程终止处理函数。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void func1(void)
{
	printf("func1\n");
}
void func2(void)
{
	printf("func2\n");
}
int main(void)
{
	printf("hello world.\n");	
	// 当进程被正常终止时,系统会自动调用这里注册的func1执行
	atexit(func2);
	atexit(func1);
	printf("my name is lilei hanmeimei\n");	
	//return 0;
	//exit(0);
	_exit(0);	//注意观察_exit(0);和return 0;exit(0);的不同表现
}