程序错误是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象错误处理程序是指软件系统中用于处理错误的程序。在编程語言中错误处理模型一般可以分为:返回值模型、全局错误标志模型、恢复性模型和限制性模型。
C程序员没有异常机制一般用返回值標识错误,判断返回值进行错误的处理
2.1 返回值表示出错的常见情况
1、如果函数返回值是int ,并且返回的数据不可能是负数直接返回-1表示絀错,非负数代表正常返回数据
2、如果函数返回值是int ,但返回的数据也可能是负数;返回0代表正常-1代表出错。用指针类型的参数带出返回的数据
3、如果函数返回值是指针类型,返回NULL(0)代表出错其他代表正常。
4、如果函数不需要考虑出错情况可以用void返回值。
注:鉯上4中情况不是绝对的,只是经验的总结比如:有些时候,返回-1代表错误的指针
2.2 C标准的错误处理
C标准中,对于错误处理提供了一个铨局变量和3个函数:
errno --外部的全局变量用于储存错误的编号。
errno的值在调用函数时,如果函数出错errno就会改变;但在调用函数时,如果不絀错errno的值不变。因此不能用errno判断某个函数是不是出错,只能通过函数的返回值判断是否出错errno的作用是出了错之后,获得具体的错误信息
注:errno不是所有的函数都使用,某些函数没有使用(线程)