Linux教程中Linux下的退出命令和退出命令之间的区别是什么

Linux教程中Linux下的退出命令和退出命令之间的区别是什么
在Linux系统命令,命令的退出和_exit命令是一样的,但是他们却有不同的功能。因此,退出命令和_exit命令之间的区别是什么
注:(出口)的出口,传递的参数程序退出时的状态码,0正常退出,其他非正常退出,通常有1或1,exit_success和exit_failure两宏观标准C、退出(exit_success);可读性更好。
作为一个系统调用,_exit和退出是孪生兄弟。他们在多大程度上是相似的我们可以从Linux的源代码中找到答案。
#定义__nr__exit __nr_exit包括 / / unistd asm-i386。H在第三百三十四× / / *文件
__nr_它是一个前缀在Linux源代码的每个系统调用。注意,有2个突出前的第二个出口第一个出口只有1了。在这个时候,没有人理解C语言,有清晰的头脑会说有_exit和出口之间没有差异,但我们也会谈论他们之间的差异,这主要体现在他们的定义函数库,_exit在Linux库函数的原型是:
# includeunistd。H无效_exit(国际地位);
与出口相比,出口()在标准库定义的函数。H,和(_exit)中定义的unistd。H,从程序,名字,似乎有点比unistd更先进。H,那么,它们之间的区别是什么(_exit)功能很简单:直接向进程停止运行,清除内存空间的使用,并毁坏了它的内核数据结构;(出口)对包装的基础功能,在实施的道路上,如果在退出过程,也是由于这个原因,一些人认为出口已不仅是单纯的系统调用之间最大的区别()函数和_exit()函数是退出()函数调用exit之前检查文件档案的开放,写文件到文件缓冲区中的文件,即清除I/O缓冲区。
退出()在结束调用它的过程之前采取以下步骤
1、调用atexit()注册功能(输出功能);在相反的顺序调用atexit调用的所有功能,它注册的,这使我们能够指定自己的清洁行动,当程序终止。例如,保存在一个文件中的程序的状态,打开锁,共享数据库,等等。
2.cleanup();关闭所有打开的流,这将导致所有的缓冲输出文字,并删除所有临时文件和tmpfile函数建立。
三.最后调用_exit()函数终止进程。
_exit做了3件事(人):1,任何打开的文件描述符属于过程,过程2, 1, 3、文件;
电话_exit退出后清理执行终止进程。
此外,另一种解释:
总之,退出函数将终止调用进程。离开程序之前,所有的文件都关闭,缓冲输出的内容将刷新定义,并调用所有刷新导出函数(定义通过atexit)。
_exit:这个功能是由Posix和运行不退出处理程序和信号处理程序,也没有冲洗的标准我/在UNIX系统的I/O流。
总之,_exit终止调用进程,但不关闭文件,不清楚的输出缓存,而不调用导出函数。
常见的:
不管进程是如何终止的,内核关闭进程打开的所有文件描述符,释放进程使用的内存!
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部