read系统调用,没有打印error,而是直接传入strerror中。程序运行时打印出Unknown error。看了半天没发现什么异常。后来发现read返回值时和接收变量比较而不是赋值。其实,read没有错误。linux中error不想windows中的getlasterror函数。linux中的error有他自己的特点,他的特点有两个:
第一、error永远不会为0,因为任何函数不会将error设置为0。
第二、如果没有出错,他的值不会被一个历程清除。这样的话,错误排除非常严格依赖于调用函数的错误判断。如果调用函数没出问题,这时如果在查看error值,可能会误判。