标记程序的运行状态和控制主要有以下几种:break/continue/return/参数的返回值/exit(int n)_exit() atexit((*p)(参数列表)):

1 break:用在开关语句、循环语句、和if结合使用。表示跳出当前开关、循环体(仅跳出一层),执行开关循环体后面的程序,和if结合使用表示满足条件则结束循环。注意break对if else不起作用,在多次循环中只能跳出一层。

2 continue:用在循环体、和if配套使用。表示结束本轮循环强制进行下一轮循环。和if结合使用可加速循环。

3 return:是语言级别的,表示调用堆栈的返回,返回到上层调用函数并带回返回的状态信息,这一点与函数返回值有相似的地方,只是函数返回值值可以返回实用的数据和状态信息。其中没有返回值的函数也可以且尽可以返回状态信息:0表示正常 1表示异常,也有exit()的作用,但状态信息只有2个。在主函数中调用return相当于exit

4 exit(int n):系统级的库函数(在stdlib中函数原型为 void exit (status),表示系统进程调用结束,作用:结束程序、关闭文件清理缓存、返回状态信息n(小于256的任意整数)给操作系统OS以便不同的任务处理。如果是单进程状态信息返回给操作系统,若是多进程则返回给父进程。

  进程与线程:

  进程:是系统OS分配调度资源的基本单位,一个进程至少拥有一个线程,系统拥有多个进程,一个进程的崩溃不会导致整个系统的瘫痪,但多进程在进程间切换开销大。

  线程:线程是进程的一个可调度的实体,线程间协同并共享同一个进程的资源,一个线程的崩溃将导致整个应用软件的崩溃。一个线程只隶属于一个进程,不同进程的线程间只有通过信息机制才能通讯。

5 _exit():与exit()的作用差不多就是不清理缓存。

6atexit(void (*p)(参数列表)):ISO C规定, 一个进程最多可登记32个终止处理函数, 这些函数由exit按登记相反的顺序(堆栈型)自动调用。如果同一函数登记多次, 也会被调用多次。

C语言-错误处理的更多相关文章

  1. [转贴]从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介

    一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...

  2. 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介

    一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...

  3. 19 Error handling and Go go语言错误处理

    Error handling and Go go语言错误处理 12 July 2011 Introduction If you have written any Go code you have pr ...

  4. C语言错误处理方法、C++异常处理方法(throw, try, catch)简介

    一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...

  5. C语言错误 BUG报错整理

    错误一 关键字:间接寻址级别不同 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> ...

  6. Asp.net MVC 服务端验证多语言错误

    服务端验证用户提交信息时为了实现多语言使用了资源文件,如: using System.ComponentModel.DataAnnotations; public class UserModel { ...

  7. C/C++编程笔记:C语言错误处理方法!如何更好地处理程序的错误?

    C语言被忽视的一些小东西!C语言基础教程之错误处理. C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据.在发生错误时,大多数的 C 或 UNIX 函数调 ...

  8. C语言错误之--初始值(低级错误)

    今天犯了一个低级错误,虽然低级,但是也不能忽视,一个低级错误以后可能小则浪费时间和精力,大则酿成整个app的项目bug.    

  9. C语言错误: HEAP CORRUPTION DETECTED

    程序源代码: //写文件两种方式(文本文件和二进制文件) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<std ...

  10. C语言 · 错误票据

    历届试题 错误票据   时间限制:1.0s   内存限制:256.0MB        锦囊1 排序. 锦囊2 把所有的编号排序,再扫描一遍数组,即可找到重复的和遗漏的.   问题描述 某涉密单位下发 ...

随机推荐

  1. 按需引入element-ui时修改.babelrc报错

    刚开始学习element-ui时用的都是完整引入,图省事,这次准备按需引入,以减小项目体积, 乙烯类npm 之后,到了修改 .babelrc 文件这一步(PS:vue-cli 2.0版本会有这个文件, ...

  2. Linux中内容查看命令"大PK"

    众所周知linux中命令cat.more.less均可用来查看文件内容,当然还有我们"非主流"的vim以及使用较少的head.tail.tac. 下面我将介绍各种命令的用法及对比. ...

  3. Bugku-一段Base64-Writeup

    转载请注明出处:http://www.cnblogs.com/WangAoBo/p/7207874.html bugku - 一段Base64 - Writeup 题目: 分析: 本来看到题目名字和分 ...

  4. H5实现查看图片和删除图片的效果

    在最近的项目中,H5需要实现查看图片和删除图片的效果,总结如下: 一.查看图片 查看图片使用weui的gallery.首先添加gallery的html,然后隐藏. <div class=&quo ...

  5. CentOS 7 下挂载NTFS盘及开机自动挂载

    一.工具 NTFS-3G 二.安装2种安装方式 2.1.yum安装 yum install NTFS* 2.2.编译安装 下载 解压 wget https://tuxera.com/opensourc ...

  6. C/S编程

    https://blog.csdn.net/antony1776/article/details/73717666 实现C/S程序,加上登录注册聊天等功能. 然后要做个协议的样子出来. 比如说注册功能 ...

  7. lamp与zabbix开机自启

    目录 1.控制httpd脚本 2.控制zabbix_server脚本 3.控制zabbix_agentd脚本 4.服务端lamp开机自动启动 5.客户端zabbix_agentd开机自动启动 1.控制 ...

  8. [坑] js indexOf is not a function

    今天写js的时候,本来没有问题的代码突然出现了问题,就是本来下拉框里面在更新之后会出现内容的 但是并没有出现内容,按下F12 查看了Console之后发现确实是接收到了数据,但是却也报错了 内容是 我 ...

  9. JAXB "有两个名为 "**" 的属性,类的两个属性具有相同名称 "**""解决方案

    这里说的名称冲突指的是: JavaBean 属性名称与字段名称之间的名称冲突.在pojo类中的setter和getter方法会导致运行报错:Exception in thread "main ...

  10. 设置idea的快捷键组合 设置为默认

    ubuntu中,idea的快捷键组合 为 “Default for GNOME”,和windows中不一样了,需要修改为“Default”: