一、exit()和atexit()函数

exit()退出程序。在main()函数返回系统时将自动调用exit()函数。
atexit()函数通过退出时注册被调用的函数提供这种功能,atexit()接受一个函数指针作为参数。

#include <stdio.h>
#include <stdlib.h>void sign_off(void);
void too_bad(void);int main()
{int n;atexit(sign_off);puts("请输入一个整数:");if(scanf("%d", &n) != 1){puts("输入不是整数");atexit(too_bad);exit(EXIT_FAILURE);}printf("%d is %s.\n", n , (n % 2 == 0) ? "双数" : "单数");return 0;
}void sign_off(void)
{puts("这不是一个整数");
}void too_bad(void)
{puts("请输入一个整数");
}


1、atexit()函数的用法
这个函数使用函数指针。要是用atexit()函数,只需要退出时要调用的函数地址传递给atexit()即可。这个函数名作为函数参数时相当于该函数的地址。atexit()函数注册列表中的函数,当调用exit()时就会执行这些函数。ANSI保证,在这个列表中至少可以存放32个函数。最后调用exit(0函数是,exit()会执行这些函数(执行顺讯与列表中的函数顺序相反,即最后添加的函数会先执行)。
2、exit()函数的用法。
exit()执行完指定的函数后,会完成一些清理工作:刷新所有输出流、关闭所有打开的流和关闭有标准函数I/O函数tmpfile()创建的临时文件。然后exit()把控制权返回主机环境,如果可能的话,向主机环境报告终止状态。通常,UNIX程序使用0表示成功终止,用非0值表示终止失败

C语言通用工具库之exit()和atexit()函数相关推荐

  1. 浅析exit()和atexit()函数

    当内核使用一个一个exec函数执行c程序时,在调用main函数之前先调用一个特殊的启动例程,可执行程序需将此例程指定为程序的起始地址.启动例程从内核获取命令行参数和环境变量,然后为调用mian函数做好 ...

  2. C++中Exit()与atexit()函数的使用

    来源:http://blog.sina.com.cn/s/blog_5cec5bad0100b0x2.html 一.exit()函数 函数声明:void exit(int state); exit() ...

  3. C语言 通用工具库 stdlib.h

    ANSI C在stdlib.h头文件中定义了一些实用函数. stdlib.h中声明的类型 size_t sizeof运算符返回的整数类型 wchar_t 用于表示宽字符的整数类型 div_t div( ...

  4. c语言程序库文件,c语言标准函数库

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 在C语言程序设计里,C 标准函数(C Standard library)是所有符合标准的头文件(head file)的集合,以 ...

  5. 出错处理函数abort、exit、atexit、strerror

    出错处理函数abort.exit.atexit.strerror. . .2010-06-30 22:43摘要:本文详细讲述了几个出错处理的函数abort.exit.atexit.strerror函数 ...

  6. time库是python中处理时间的标准库_python语言time库和datetime库基本使用详解

    今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作,这篇博客花了2个半小时的时间,结合自己所学,所思,所想写作 ...

  7. linux C语言多线程库pthread中条件变量的正确用法逐步详解

    linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群. 关于条件变量的典型应用,可以参 ...

  8. 程序显示文本框_vb程序语言题库

    vb语言题库 一.程序填空   共1题 (共计20分) 第1题 (20.0分)        题号:711        难度:中        第1章 ----------------------- ...

  9. 山科c语言题库,计算机培训 所有C语言题库

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

最新文章

  1. 读书笔记:《少的力量》
  2. 28岁以后,我不抱大腿,我就是大腿
  3. 深入理解JavaScript系列(5):强大的原型和原型链
  4. matlab 高斯迭代代码_用Matlab编写你的第一个有限元_《数值计算与程序设计》系列课程...
  5. Python爬虫教程:验证码的爬取和识别详解
  6. 什么是Tensor Flow和lite以及数据流图
  7. Django的缓存(1)
  8. 推荐电影 历年佳片有约电影 1998-2007
  9. Python——免费观看全网视频小程序
  10. java连连看怎么加音效_怎么给视频加音效
  11. 减轻用户记忆负担:识别与回忆在人机交互中的应用
  12. 【Uplift】因果推断基础篇
  13. 用ybc_box做小程序
  14. Organ at Risk Segmentation for Head and Neck Cancer using Stratified Learning and Neural Architectur
  15. Java网课简易飞机大战
  16. android手机8g内存够用嘛,手机内存选8G还是12G,行业老人告诉你,多数人都花冤枉钱了...
  17. (转)Unity 之 UGUI 小总结
  18. Android后台监听耳机(线控、蓝牙)按键事件
  19. skid buffer
  20. 阿里云服务器能做什么呢?

热门文章

  1. 北京应用物理计算机与科学,张爱清 - 北京应用物理与计算数学研究所 -
  2. 编程语言竞争激烈,各大城市岗位薪资竟然也......
  3. JS数据类型lianxi
  4. vue项目引入容联七陌客服系统(qimoChatClick点击事件的使用)
  5. python socket使用UDP控制继电器进行硬件产品循环开关机测试
  6. 计算机RIY的英语,Rylee[赖莉,赖恩,赖利]英文名的中文翻译意思、发音、来源及流行趋势-千代英文名...
  7. java查询数据库大批量数据_数据库有百万数据量的情况下,分页查询的方法及其优化方式...
  8. Dundas Chart控件的使用总结
  9. WinForms Accordion控件
  10. 关于QGroundControl的软件架构的理解