exit()函数详解与Exit() 和 Return() 的区别

exit()函数详解与Exit() 和 Return() 的区别

ID:42575223

大小:15.39 KB

页数:4页

时间:2019-09-18

exit()函数详解与Exit() 和 Return() 的区别_第1页
exit()函数详解与Exit() 和 Return() 的区别_第2页
exit()函数详解与Exit() 和 Return() 的区别_第3页
exit()函数详解与Exit() 和 Return() 的区别_第4页
资源描述:

《exit()函数详解与Exit() 和 Return() 的区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、exit()函数详解与Exit()和Return()的区别exit(0)表示程序正常,exit(1)/exit(-1)表示程序异常退出exit()结束当前进程/当前程序/,在整个程序中,只要调用exit,就结束return()是当前函数返回,当然如果是在主函数main,自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值..exit(1)表示进程正常退出.返回1;exit(0)表示进程非正常退出.返回0.进程环境与进程控制(1):进程的开始与终止1.进程的开始:C程序是从main函数开始执行,原型如下:

2、intmain(intargc,char*argv[]);通常main的返回值是int型,正确返回0.如果main的返回值为void或者无,某些编译器会给出警告,此时main的返回值通常是0.关于main的命令行参数不做过多解释,以下面的程序展示一下:#includeintmain(intargc,char*argv[]){    inti;    for(i=0;i

3、:return,exit,_exit,_Exit,pthreade_exit异常中指分为:abort,SIGNAL,线程响应取消主要说一下正常终止的前4种,即exit系列函数.#include   /*ISOC*/voidexit(intstatus);void_Exit(intstatus);#include   /*POSIX*/void_exit(intstatus);以上3个函数的区别是:exit()(或return0)会调用终止处理程序和用户空间的标准I/O清理程序(如fclose),_exit和_Exit不调用而直接由内核接管进

4、行清理.因此,在main函数中exit(0)等价于return0.3.atexit终止处理程序:ISOC规定,一个进程最对可登记32个终止处理函数,这些函数由exit按登记相反的顺序自动调用.如果同一函数登记多次,也会被调用多次.原型如下:#includeintatexit(void(*func)(void));其中参数是一个函数指针,指向终止处理函数,该函数无参无返回值.以下面的程序为例:#includestaticvoidmyexit1(){    printf("firstexithandler");}staticvoidmyex

5、it2(){    printf("secondexithandler");}intmain(){    if(atexit(my_exit2)!=0)        printf("can'tregistermy_exit2");    if(atexit(my_exit1)!=0)        printf("can'tregistermy_exit1");    if(atexit(my_exit1)!=0)        printf("can'tregistermy_exit1");    printf("mainisdone");    retu

6、rn0;}运行结果:$./a.outmainisdonefirstexithandlerfirstexithandlersecondexithandler运行结果:$./a.outarg1arg2arg3argv[0]:./a.outargv[1]:arg1argv[2]:arg2argv[3]:arg3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。