exit()与_exit()的区别
来源:互联网 发布:大纲写作软件 编辑:程序博客网 时间:2024/04/29 00:04
exit()和_exit()的区别:
注:这两个函数作用都是退出一个进程,区别如下:
1)_exit()是一个系统调用函数,exit()是一个标准c库函数;
2)exit()会清空输出缓冲区的缓存,执行标准I/0库的清理关闭操作;
3)exit()会执行调用使用atexit注册的终止处理程序;
注:对于atexit()注册的终止处理程序是先注册后调用,ANSI C规定最多可以注册32个终止处理程序。
验证示例代码:
// demo1.c#include<stdio.h>#include<unistd.h> // _exit()int main(){ printf("hello world"); _exit(0);}root@ubuntu15:code# ./mainroot@ubuntu15:code#
// demo2.c#include<stdio.h>#include<unistd.h> // _exit()int main(){ printf("hello world"); fflush(stdout); // 清空输出缓冲区 _exit(0);}root@ubuntu15:code# ./mainhello worldroot@ubuntu15:code#
// demo3.c#include<stdio.h>#include<unistd.h> // _exit()int main(){ printf("hello world\n"); // 换行带清空输出缓冲区的功能 _exit(0);}root@ubuntu15:code# ./mainhello worldroot@ubuntu15:code#
// demo4.c#include<stdio.h>#include<stdlib.h> // exit()int main(){ printf("hello world"); exit(0);}root@ubuntu15:code# ./mainhello worldroot@ubuntu15:code#
// demo5.c // 观察终止处理程序是先注册后执行#include<stdio.h>#include<stdlib.h> // exit()// int atexit(void (*function)(void));void funcA(void){ printf("I'm A\n");}void funcB(void){ printf("I'm B\n");}void funcC(void){ printf("I'm C\n");}int main(){ atexit(funcA); atexit(funcB); atexit(funcC); exit(0);}root@ubuntu15:code# ./mainI'm CI'm BI'm Aroot@ubuntu15:code#
0 0
- exit与_exit的区别
- exit()与_exit()的区别
- exit()与_exit()的区别
- _exit 与 exit 的区别
- exit 与 _exit的区别
- exit()与_exit()的区别
- exit() 与 _exit() 的区别
- exit()与_exit()的区别
- exit()与_exit()的区别
- exit()与_exit()的区别
- exit 与 _exit的区别
- exit()与_exit()的区别
- exit()与_exit()的区别
- exit与_exit的区别
- exit()与_exit()的区别
- exit,_exit,_Exit的区别
- exit与_exit区别
- exit与_exit区别
- nyoj891找点
- AppRTCDemo 运行测试
- HDU 5250 三阶魔方(模拟、置换)
- 应用内调用系统的照相机拍照的方法
- 如何处理大量并发用户访问网页,并且如何跟踪每个用户
- exit()与_exit()的区别
- PHPCMS留言板制作
- jQuery自定义插件
- php图书管理系统
- jQuery插件-把中文字符串,中文的…
- jQuery表格插件,简易demo
- 文件上传form内容
- title修改后报错
- IE低版本Ajax请求不正常发送