exit()和_exit()和return

2024-06-07 20:48
文章标签 return exit

本文主要是介绍exit()和_exit()和return,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

exit()和return的区别:
按照ANSI C,在最初调用的main()中使用return和exit()的效果相同。
但要注意这里所说的是“最初调用”。如果main()在一个递归程序中,exit()仍然会终止程序;但return将
控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序。return和exit()的另一个区别
在于,即使在除main()之外的函数中调用exit(),它也将终止程序。
_exit()与exit的区别:
头文件:
exit:#include<stdlib.h>
_exit:#include<unistd.h>
_exit()函数:直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;
exit()函数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。
exit()函数与_exit()函数最大的区别就在于 exit()函数在调用 exit 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。

这篇关于exit()和_exit()和return的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040260

相关文章

try -catch-finally的理解,同时在try-catch-finally中含有return和throws的理解

在没有try-catch或try-catch-finally的情况下,程序正常执行到某行,在这行报错后,这行后面的代码就不执行了,程序就停止了,中断了。 例如   在有try-catch或try-catch-finally 情况上,在某行执行错误,在try中这行下的代码不执行,try外的代码执行。当然是catch在没有做处理的情况下。如果catch中做了处理,在不影响当前程序下,try

王立平--android中让程序终止退出的解决办法 System.exit(0)

System.exit(0); System.exit(0)是将你的整个虚拟机里的内容都停掉了, 而finish()只是退出了activity,并没有退出应用,Application还是存在于内存中的,除非被系统回收。   System.exit(0)是正常退出程序, System.exit(1)或者说非0表示非正常退出程序 System.exit(sta

王立平--AES加密图片实现 SkImageDecoder::Factory return null

这个问题是在加密图片,存入sd卡,在解密出来展示,出现的。我个人研究了很久没解决。最后经过高人指点,终于解决了。 在此,拿出来分享,希望各位少走弯路。 我之前的设计思路是:(可以不看哦) 1.把图片从drawable读入成bitmap 2.bitmap-->byte 3.调用AES的byte加密算法。 4.加密成byte,在转化为string 5,把string存入sd卡。

编译时出现错误 -- clang: error: linker command failed with exit code 1 (use -v to see invocation)

出现这个错误的原因有多种,常见的是因为某些文件的缺失或者是文件的重复导致的。 这类错误查看的关键在于其上一行的文字。 对于文件缺少而导致错误的情况: 例如上图中的示例,其上一行文字为 ld:library not found for -lrxl,可以看出是缺失了某一文件而导致的错误,这行文字中的最后“ -lrxl ”:-l 代表着其前缀是“lib”,连着后面的 rxl,其名称为 libr

C++中的exit()函数

原创:http://blog.csdn.net/u013383042/article/details/51106231 exit(0)与exit(1)都是表示退出. exit(0):表示正常退出 exit(1):表示出错(或非正常)退出。

VS2013 + QT5.7.0静态编译 错误 .NMAKE:fatal error U1077. return code 0x2,使用 类 模板 需要 模板 参数列表

最近准备搞下QT,早有耳闻,QT的动态库机制让QT的程序大的无比,这我肯定是不能容忍的,准备使用静态库的方式,那就编译源码吧! 下面我说下环境以及碰到的问题 文章参考了http://blog.csdn.net/u011964923/article/details/52886908 ,但是我的报错了。。。下面是解决. 1.环境问题 1.QT版本 :qt5.7  qt-op

【C++】win7 64下VC++6.0(Unable to register this add-in because its DLLRegisterServer return an error)

 FileTool.exe用于替换 Visual C++ 使用开发人员 Studio 对象模型中的打开和添加到项目菜单项。也是一个修复 VC6.0打开文件时出错退出的插件。 1. 下载FileTool.exe,并解压 2. 打开VC6.0,点击File-Open Workspace,选择刚解压出来的FileTool.dsw,并确定 3. 点击Bulid-Build FileTool.

c++ 解释return {it->second,i}; 这条语句中每个单词的含义

在 C++ 中,return {it->second, i}; 语句的含义可以分解为以下几个部分。 1. return 含义:return 是一个关键字,用于从一个函数中返回值。在函数执行到 return 语句时,会结束函数的执行,并将后面跟随的值返回给调用该函数的地方。 2. {it->second, i} 含义:这个部分使用了列表初始化(C++11 及以后版本引入的特性)。它表示创建一

try里面放return,finally还会执行吗?

引言 喜欢请点赞,支持点在看。 关注牛马圈,干货不间断。 趣聊 今天,在与同事讨论编程语言特性时,我们谈到了一个有趣的话题:在JavaScript中,finally块中的return语句是否会覆盖try块中的return。我首先通过网络搜索,发现关于这一问题的讨论颇多,其中一篇关于JavaScript的文章尤为引人关注。以下是该文章的部分内容截图: ❝ 文章指出,在JavaScript中

JavaScript中的return语句中的的意义

在廖雪峰大佬的教程里廖雪峰教程发现了一个语句,就是 return s && s.trim() 真的是不明白在return中是做判断是什么意思,于是搜了一下,在stackflow中找到了答案 正解 return s && s.trim() 的意思就是: if (s) return s.trim();else return s; 廖老师的代码如下 var arr = ['A', '',