ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux之程序的开始和结束

2019-07-21 21:51:49  阅读:185  来源: 互联网

标签:结束 程序 处理函数 exit Linux 终止 执行 链接 加载


1、main函数由谁来调用

(1)、编译链接时的引导代码。

  操作系统下的应用程序其实是在main函数执行前也需要先执行一段引导代码才能去执行main函数,我们写应用程序时不用考虑引导代码的问题,编译链接时(准确的说是链接时)由链接器将编译器中事先准备好的引导代码给链接进去和我们的应用程序一起构成最终 的可执行程序。

(2)、运行时的加载器。

  加载器是操作系统中的程序,当我们去执行一个程序时(譬如./a.out,譬如代码中用exec族函数来运行)加载器负责将这个程序加载到内存中执行这个程序。

(3)、程序在编译链接时用链接器,运行时用加载器,这两个东西对程序运行原理非常重要。

2、程序如何结束

(1)、正常终止:return 、 exit 、 _exit

(2)、非正常终止:自己或者是他人发信号  终止进程

3、atexit注册  进程终止处理函数

(1)、atexit注册多个进程终止处理函数。先注册的后执行(先进后出,和栈一样)

(2)、return、 exit、和 _exit的区别:return和exit效果一样,都是会执行进程终止处理函数,但是用_exit终止进程时并不执行atexit注册的进程终止处理函数。

标签:结束,程序,处理函数,exit,Linux,终止,执行,链接,加载
来源: https://www.cnblogs.com/jiangtongxue/p/11222900.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有