C语言中Exit函数的使用

exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束

return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,

如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.

就要用到上个进程的返回值..

exit(1)表示进程正常退出. 返回 1;

exit(0)表示进程非正常退出. 返回 0.

进程环境与进程控制(1): 进程的开始与终止

1. 进程的开始:

C程序是从main函数开始执行, 原型如下:

int main(int argc, char *argv[]);

通常main的返回值是int型, 正确返回0.

如果main的返回值为void或者无, 某些编译器会给出警告,

此时main的返回值通常是0.

关于main的命令行参数不做过多解释, 以下面的程序展示一下:

#i nclude int main(int argc, char *argv[])

{

int i;

for (i = 0; i < argc; i++)

printf("argv[%d]: %s\n", i, argv[i]);

return 0;

}

2. 进程终止:

C程序的终止分为两种: 正常终止和异常终止.

正常终止分为: return, exit, _exit, _Exit, pthreade_exit

异常中指分为: abort, SIGNAL, 线程响应取消

主要说一下正常终止的前4种, 即exit系列函数.

#i nclude /* ISO C */

void exit(int status);

void _Exit(int status);

#i nclude /* POSIX */

void _exit(int status);

以上3个函数的区别是:

exit()(或return 0)会调用终止处理程序和用户空间的标准I/O清理程序(如fclose), _exit和_Exit不调用而直接由内核接管进行清

理.

因此, 在main函数中exit(0)等价于return 0.

3. atexit终止处理程序:

ISO C规定, 一个进程最对可登记32个终止处理函数, 这些函数由exit按登记相反的顺序自动调用. 如果同一函数登记多次, 也会被

调用多次.

原型如下:

#i nclude int atexit(void (*func)(void));

其中参数是一个函数指针, 指向终止处理函数, 该函数无参无返回值.

以下面的程序为例:

#i nclude static void myexit1()

{

printf("first exit handler\n");

}

static void myexit2()

{

printf("second exit handler\n");

}

int main()

{

if (atexit(my_exit2) != 0)

printf("can't register my_exit2\n");

if (atexit(my_exit1) != 0)

printf("can't register my_exit1\n");

if (atexit(my_exit1) != 0)

printf("can't register my_exit1\n");

printf("main is done\n");

return 0;

}

运行结果:

$ ./a.out

main is done

first exit handler

first exit handler

second exit handler运行结果:

$./a.out arg1 arg2 arg3

argv[0]: ./a.out

argv[1]: arg1

argv[2]: arg2

argv[3]: arg3

c语言中阻止程序退出的函数,(转)C语言中Exit函数的使用相关推荐

  1. c语言中exit函数作用,c语言中exit函数 c语言中exit与break区别

    C语言中exit();怎么用? exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束. return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进 ...

  2. exit在c语言里的作用,C语言中exit函数的使用

    exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调 ...

  3. c语言中exit函数_C ++中的exit()函数

    c语言中exit函数 介绍 (Introduction) Today we'll learn about exit() in C++. We know we can break out of loop ...

  4. (转)C语言中Exit函数的使用

    C语言中Exit函数的使用 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了, ...

  5. java中flush函数作用_Java语言中flush()函数作用及使用方法详解

    最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...

  6. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...

  7. c语言中open函数r,C语言中open函数

    语法Open ( windowvar, windowtype {, parent } ) 参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中windowtype:s ...

  8. 在java语言中 ()方法是不可以继承的_Java 语言中,构造方法是不可以继承的。( )_学小易找答案...

    [简答题]需求分析完整话术 [简答题] [单选题]适用于场地面积有限,集装箱吞吐量较大的水陆联运码头的起重机系统是( )系统 [单选题]利用叉车或半挂车.汽车承载货物,连同车辆一起开上开下船,到达目的 ...

  9. c语言fgetc函数作用,C语言中fgetc函数的使用方法

    该函数包含在C语言中的stdio.h头文件中,主要功能是从流中读取一个字符,并增加文件指针的位置. 函数原型:int fgetc(FILE *fp); 函数功能:从流中读取字符,即从fp所指定的文件中 ...

最新文章

  1. java.lang.ClasNotFoundException:Didnt findclass on path:DexPathList[[zip file
  2. CIKM 2020 | 如何更为合适地评测推荐算法? Top-N物品推荐算法评测设置回顾
  3. 机器学习中的数学-线性判别分析(LDA), 主成分分析(PCA)
  4. 【笔记】大数定理证明
  5. 后台编写HttpWebRequest的POST请求,必须注意的一个小细节
  6. Bootstrap的role
  7. mac终端一次命令在多个虚拟机执行_Windows给力!可以扔掉Linux虚拟机了!
  8. MyBatis-Plus通用枚举自动关联注入
  9. 【实践】58同城本地服务推荐系统演进
  10. python class类的self_Python类class参数self原理解析
  11. spring事务传播行为与事务隔离等级
  12. 那些年踩过的坑(满目疮痍,一身狼狈)
  13. MaxDOS V7 PXE网刻教程
  14. Linux系统软件安装
  15. linux下编译opencv的无kuda版本,自定义路径
  16. hdfs 指令_HDFS之一:hdfs命令行操作
  17. 如何测试服务器端口是否打开?
  18. 电商设计的文字的选择与排版
  19. MySQL之建表时[Err] 1050 - Table ‘users‘ already exists异常解决方法
  20. Linux过滤关键字写入另一个文件

热门文章

  1. Unity 从零单排 day#2
  2. python控制电机_[MicroPython]TurnipBit开发板旋转按钮控制直流电机转速
  3. 什么是加壳和脱壳技术?加壳和脱壳技术是什么意思?
  4. HTML CSS 鼠标样式效果
  5. 3D模型下载 - 3D模型免费下载
  6. 快速上手highcharts
  7. qt qml 高德地图--WebAPI 获取静态地图
  8. Mysql中isnull,ifnull,nullif的区别
  9. 《NFL橄榄球》:丹佛野马·橄榄1号位
  10. 我给面试官讲解了单例模式后,他对我竖起了大拇指!