错误代码查看工具

错误代码查看工具

1.  perror 错误代码查看工具

           在mysql
的应用进程中,或许会现出形形色色的error。这一个error有个别是由于操作系统引起的,比如文件或许目录不设有等等,使用perror的效应就是解释这几个错误代码的详细含义。 
perror 使用方式如下:

*       图片 1
*

    例如:钦命错误号30和伍二十个别是指什么错误
      图片 2
    在MYSQL系统现身故障或不当后,1般用户都会去看错误日志,而不当日志里一般都会发觉这么的失实编号。这时我们就能够使用这几个命令分析到底是哪个地方出难点了。

glibc_error reporting,glibc_error

  很多GNU
CCurry的函数都会侦测并报告错误条件。大家的次序要求检查评定那几个错误条件。比如:我们开拓贰个输入文件时需求判定该文件是或不是科学的开辟。假如未有科学打开,大家需求打字与印刷错误可能接纳其它科学的措施。为了选择那种错误报告机制,大家要求包括头文件errno.h

二 总结

       在前面几章中讲到了常用的多少个工具,其实还有像replace
(sql文本字符替换工具),那个以后用的时候在翻看表明。
mysqlimport(数据导入工具)后续会在讲到。mysqlhotcopy(MyISAM表热备份工具)那几个只针对MyISAM存款和储蓄引擎的表,就不在说明。最终了解运用那些工具,将会带来极大方便。

检查实验错误:

  很多库函数都会回来八个出奇的值来彰显函数运营出错。常见的奇特值有:-一、空指针、EOF常量。可是这个重临值只好告诉你有不当产生,但不会告知你错误是如何。假设您想清楚不当是何等,就得靠错误代码,错误代码存款和储蓄在变量errno中(在errno.h中有声明)

  errno变量包蕴了系统错误代码,其系列是volatile。该类型意味着其得以突然被异步线程改变,编写翻译器从不借使其值。假使你在写时限信号处理程序应当保留改变量的值并回升其值。

  errno的早先值为0,遭逢错误时,errno绝无或者为0。但尚未不当的时候,errno也不必然为0(库函数在成功运营时并不会修改errno的值)。所以,不要依照errno的值来判断错误是或不是发生。正确的做法是为每七个函数做好文书档案,标注出错误代码的值对应的一无所能类型。那样调用失败时,你能够经过检查errno获取错误代码,然后查询函数文书档案获取错误详情。假使你想赢得某1库函数的错误代码,最佳再次在此之前设置errno为0(只怕你还想先保存以下errno的值,然后便于复苏该值)。

  每2个错误代码都有多少个以E伊始紧跟大写字母或数字的标记名,实际为定义在errno.h中的宏。当然不是全体的宏都定义在一个errno.h中(详细的能够团结翻一翻头文件,注意不仅仅唯有多个errno.h,多个errno.h共同定义了全部的宏)

  错误代码的值壹般为正数并且都不雷同,但也有八个不一致:EWO奥迪Q5LDBLOCK和EAGAIN的错误代码是同1的。除了EWO汉兰达LDBLOCK和EAGAIN,你能够采取switch语句来判断错误代码。但你不应该依靠于此,你唯一能够重视的就是文书档案。

  除了GNU/Hurd系统,大约拥有的系统调用被流传1个不算指针时都会回到EFAULT。所以啊,glibc的函数库表达文档中屡屡会不难对EFAULT的表达。

  超越拾贰分之伍的错误代码宏名都分明的好懂,即使实在不知其意能够查看手册只怕

~# man errno

那里大约提多少个宏:

Macro: int EDOM
    域错误,可以理解为定义域错误。主要用在数学函数中。如果数学函数的一个参数值不在函数定义域中,则会将errno设置为EDOM

Macro: int ERANGE
    范围错误,与上面的EDOM恰好相反。EDOM是定义域的话,ERANGER就是值域了。也多用于数学函数中。如果数学函数返回值超过了约定的返回,则会将errno设置为ERANGE

Macro: int EAGAIN
    资源暂时不可获得。这种错误可能是随机的,你再次运行的时候便好了。。。EWOULDBLOCK是EAGAIN的一个别名。

 

网站地图xml地图