c语言库函数中有error函数吗?

Python09

c语言库函数中有error函数吗?,第1张

c语言标准库函数里没有error函数。C语言对异常的处理确实不够好,大多的时候都需要人工除错。

有几个类似的函数,分别处理各种情况下的异常:

ferror函数:在调用各种输入输出函数(如

putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。

它的一般调用形式为

ferror(fp);如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件

每一次调用输入输出函数,均产生一个新的ferror函

数值,因此,应当在调用一个输入输出函数后立即检

查ferror函数的值,否则信息会丢失。在执行fopen函数时,ferror函数的初始值自动置为0。在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。

perror函数:

用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数

s

所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno

的值来决定要输出的字符串。

strerror函数:用来

从错误号码

用英文表达的错误内容,返回指针,指向这段英文字符串。如果你不知道错误号,那么在出错发生时,及时用

errno

的当前值

作参数,打印这段字符串。

类型定义不当,除数为0,指针使用错误。

error命令是C++语言的预处理命令之一,当预处理器预处理到error命令时将停止编译并输出用户自定义的错误消息。

int*re()

{

int*a

a=newint[10]

for(inti=0i<10i++)

a[i]=i

returna

}

扩展资料

error

用法示例:

/*

*检查编译此源文件的编译器是不是C++编译器

*如果使用的是C语言编译器则执行#error命令

*如果使用的是C++编译器则跳过#error命令

*/

#ifndef__cplusplus

#error亲,您当前使用的不是C++编译器噢!

#endif

#include<stdio.h>

intmain()

{

printf("Hello,World!")

return0

}