C语言-错误处理
标记程序的运行状态和控制主要有以下几种: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语言-错误处理的更多相关文章
- [转贴]从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- 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 ...
- C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- C语言错误 BUG报错整理
错误一 关键字:间接寻址级别不同 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> ...
- Asp.net MVC 服务端验证多语言错误
服务端验证用户提交信息时为了实现多语言使用了资源文件,如: using System.ComponentModel.DataAnnotations; public class UserModel { ...
- C/C++编程笔记:C语言错误处理方法!如何更好地处理程序的错误?
C语言被忽视的一些小东西!C语言基础教程之错误处理. C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据.在发生错误时,大多数的 C 或 UNIX 函数调 ...
- C语言错误之--初始值(低级错误)
今天犯了一个低级错误,虽然低级,但是也不能忽视,一个低级错误以后可能小则浪费时间和精力,大则酿成整个app的项目bug.
- C语言错误: HEAP CORRUPTION DETECTED
程序源代码: //写文件两种方式(文本文件和二进制文件) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<std ...
- C语言 · 错误票据
历届试题 错误票据 时间限制:1.0s 内存限制:256.0MB 锦囊1 排序. 锦囊2 把所有的编号排序,再扫描一遍数组,即可找到重复的和遗漏的. 问题描述 某涉密单位下发 ...
随机推荐
- ABB工业机器人(条件执行数字信号判断,画方or画圆)
一.前戏 条件:从安全点,到工具区域夹取工具(笔),到工作区域,判断数字信号 Di1 =1 ,Ture :画方,False:画圆,回到工具区域放下工具(笔),回到安全点 二. 准备工作 校准tcp工具 ...
- 有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)
经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4, ...
- C# byte[]转string, string转byte[] 的四种方法
转载:https://blog.csdn.net/tom_221x/article/details/71643015 第一种 string str = System.Text.Encoding ...
- io型和有状态的应用不放入k8s,而是做服务映射
io型和有状态的应用不放入k8s,而是做服务映射 待办 在实际应用中,一般不会把mysql这种重IO.有状态的应用直接放入k8s中,而是使用专用的服务器来独立部署.而像web这种无状态应用依然会运行在 ...
- SpringMVC:ssm整合练习一
西部开源-秦疆老师:MyBatis,Spring,SpringMVC 整合练习一 , 秦老师交流Q群号: 664386224 未授权禁止转载!编辑不易 , 转发请注明出处!防君子不防小人,共勉! ss ...
- 计算机二级-C语言-程序填空题-190109记录-对二维字符串数组的处理
//给定程序,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长.ss所指字符串数组中共有M个字符串,且串长<N. //重难点 ...
- 一些基础但有趣的shell脚本
一.打印9*9乘法表 #!/bin/bash for i in `seq 9` do for j in `seq $i` do echo -n "$i*$j=$[i*j]" don ...
- 喵星之旅-狂奔的兔子-myeclipse搭建ssm
. 可以使用试用期限内的myeclipse,也可以找到有授权的机器进行操作.搭建好的项目框架可以直接移植到免费软件eclipse使用.或者直接购买myeclipse授权. 一.创建一个java web ...
- 攻防世界 你知道php备份文件吗?
题目地址:https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5064 php的备份有两种 ...
- eclipse好用的快捷键
eclipse一些增加工作效率的快捷键(部分自己添加) eclipse如何修改快捷键 1. shift + enter | ctrl + shift + enter 在下/上方增加空行 2. ctrl ...