简要对比C语言中三个用于退出进程的函数
C语言_exit()函数:结束进程执行
头文件:
#include<unistd.h>
定义函数:
void_exit(intstatus);
函数说明:_exit()用来立刻结束目前进程的执行,并把参数status返回给父进程,并关闭未关闭的文件.此函数调用后不会返回,并且会传递SIGCHLD信号给父进程,父进程可以由wait函数取得子进程结束状态.
附加说明:_exit()不会处理标准I/O缓冲区,如要更新缓冲区请使用exit().
C语言on_exit()函数:设置程序正常结束前调用的函数
头文件:
#include<stdlib.h>
定义函数:
inton_exit(void(*function)(intvoid*),void*arg);
函数说明:on_exit()用来设置一个程序正常结束前调用的函数.当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序.参数arg指针会传给参数function函数,详细情况请见范例.
返回值:如果执行成功则返回0,否则返回-1,失败原因存于errno中.
范例
#include<stdlib.h>
voidmy_exit(intstatus,void*arg)
{
printf("beforeexit()!\n");
printf("exit(%d)\n",status);
printf("arg=%s\n",(char*)arg);
}
main()
{
char*str="test";
on_exit(my_exit,(void*)str);
exit(1234);
}
执行:
beforeexit()!exit(1234)arg=test
C语言atexit()函数:设置程序正常结束前调用的函数
头文件:
#include<stdlib.h>
定义函数:
intatexit(void(*function)(void));
函数说明:atexit()用来设置一个程序正常结束前调用的函数.当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序.
返回值:如果执行成功则返回0,否则返回-1,失败原因存于errno中.
范例
#include<stdlib.h>
voidmy_exit(void)
{
printf("beforeexit()!\n");
}
main()
{
atexit(my_exit);
exit(0);
}
执行:
beforeexit()!
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西