【C】C语言中的_exit()与exit()
2024-09-01 05:58:38
_exit()和exit()主要区别是一个退出进程会清理I/O缓冲区,一个直接结束进程进入到内核中。
举例说明:
#include <stdio.h> /*demo01 程序只输出 hello world*/
/*
int main()
{
printf("hello world\n");
printf("hello world");
_exit(0);
}
*/ /*demo02 程序输出 hello world
hello world */
/*
int main()
{
printf("hello world\n");
printf("hello world\n");
_exit(0);
}
*/ /*demo03 程序只输出 hello world*/
/*
int main()
{
printf("hello world\n");
printf("hello world");
exit(0);
}
*/ /*demo04 程序输出 hello world
hello world */
/* int main()
{
printf("hello world\n");
printf("hello world\n");
exit(0);
}
解释:
printf函数就是使用的是缓冲I/O的方式,该函数在遇到“\n“换行符时自动的从缓冲区中将记录读出。所以exit()将缓冲区的数据写完后才能退出来,所以调用exit()函数后程序并不会马上退出,这就是有些出现的僵尸程序,而_exit是直接退出进入到内核中去。
return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
return是返回函数调用,如果返回的是main函数,则为退出程序。
exit是在调用处强行退出程序,运行一次程序就结束
exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值。
exit(0)表示正常退出
无论写在那里,都是程序退出,dos和windows中没有什么不一样,最多是系统处理的不一样。
数字0,1,-1会被写入环境变量ERRORLEVEL,其它程序可以由此判断程序结束状态。
一般0为正常退出,其它数字为异常,其对应的错误可以自己指定。
返回给操作系统的,0是正常退出,其他值是异常退出,在退出前可以给出一些提示信息,或在调试程序中察看出错原因.
参考:https://blog.csdn.net/yyfwd/article/details/50548359
最新文章
- eclipse配置tomcat 和JRE环境
- Nginx服务安装配置
- jquery mobile系列问题汇总整理(传播知识,利己利人)
- 2016java技术岗面试题
- opencv7-ml之svm
- typedef和#define的用法与区别
- RabbitMQ 入门
- ajax 无刷新文件上传
- 安装Apache(httpd服务)
- CSS Selector (part 1)
- 【bzoj 3299】 [USACO2011 Open]Corn Maze玉米迷宫(最短路)
- 利用dedecms给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片
- jQuery背景跟随鼠标移动的网页导航
- Session、SessionId和Cookie的关系
- 编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上
- Oracle数据库web维护客户端管理工具软件
- 一、初识CocoaPods——XCode的依赖库管理工具
- zzw原创_非root安装fastDFS
- bzoj 5099: [POI2018]Pionek
- Shell Trap信号管理