文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用errno检测错误

使用errno检测错误

时间:2010-06-09  来源:zyd_cu

很多库函数,特别是那些与操作系统有关的,当执行失败时会通过一个名称为errno的外部变量,通知程序该函数调用失败。如:

 

/*  调用库函数  */

if(errno)

/* 处理错误 */

 

上面看似清楚明了的代码,其实是错误的,出错原因在于,在库函数没有失败的情况下,并没有强制要求库函数一定要设置errno为0,这样errno的值可能是前一个执行失败的库函数设置的值。做如下修改:

 

errno = 0;

/*  调用库函数  */

if(errno)

/* 处理错误 */

 

这下应该行了吧,但仍然是错误的。库函数在调用成功是,既没有强制要求对errno清零,同时也没有禁止设置errno。如调用fopen库函数时,当fopen被要求新建一个文件以供程序输出时,如果已经存在一个同名文件,fopen函数将先删除它,再新建一个文件,及fopen可能调用其他的库函数用于检查文件是否存在(假设该库函数在文件不存在时,设置errno的值),则fopen在每次新建一个不存在的文件时,errno被设置。因此在调用库函数是,应先检测作为错误指示的返回值,确定程序执行失败,再检查errno,以弄清楚出错原因,应按如下方式书写代码:

 

/*  调用库函数  */

if( 返回的错误值)

         检查errno

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载