iOS和Android的errno定义不一致

写一些代码时做错误处理,在有超时判断的地方需要返回一个超时的错误码,没有自定义新的错误,直接使用了在socket编程中常用的ETIMEDOUT这个值。
调试的时候错误码需要打印出来,在iOS上调试方便一点,一直看到的都是60这个值,也就心里把60这个值当做超时错误了。
直到后来在Android上调试时,发现有个错误打印出来的值是110,然后就奇怪了,它是怎么来的。找遍代码也没找到能返回110的地方...
直到把返回错误的地方都加上了日志,才发现它竟然是ETIMEDOUT
看了下它们各自的定义,errno.h中,发现iOS和Android的区别还是挺大的,基本上就没有值能对应得上的

所以,写代码时判断errno时一定得写成宏定义的形式,不能直接用数字来判断,即不会出错,代码看起来也更容易理解。

你可能感兴趣的:(iOS和Android的errno定义不一致)