Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1438623
  • 博文数量: 704
  • 博客积分: 10140
  • 博客等级: 上将
  • 技术积分: 6230
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-15 20:41
文章分类

全部博文(704)

文章存档

2013年(1)

2012年(16)

2011年(536)

2010年(151)

分类: C/C++

2011-06-23 11:54:52

一个c程序的入口函数总是main函数,用户在用户空间执行这个c程序后,将会引起系统调用,kernel调用exec函数,将具体main函数的某些信息作为参数传给exec,由exec函数启动这个main函数,main函数执行完后,如果单线程,则有两种方式终止,(1)调用exit函数(return)。(2)调用 _exit(POSIX)函数或者_Exit函数(ISO C)。两者的区别在于,2只是直接返回kernel,而1会做一些清理工作。1的清理工作主要包括三部分,(a)调用exit handler;(b)调用fclose等函数关闭与I/O库的联系;(c)调用_exit或者_Exit函数。其中的exit handler需要用户自己定义并在退出函数之前用atexit函数注册,然后在exit函数(return)中被自动执行,执行顺序与注册顺序相反。

阅读(582) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~