linux中open()函数的返回值 但 man 2 open 得到说明
RETURN VALUE
open and creat return the new file descriptor, or -1 if an error occurred (in which case, errno is set appropriately)
说明只有-1 是错误,其它的都可能是正确, 包括0
今天有个产品使用SIM公司产的3G CDMA2000模块, USB转2个以上串口,一个是AT指令用,一个是给PPPD拔号用。
通信模块在某些时候通信数据量大的时候死掉, 于是kill掉pppd进程, 并且给通过软件控制通信模块断电上电。发现AT指令的虚拟串口open返回值是0, 怀疑失败。
一开始以为是驱动不好, 但是后来排除了。原因是linux下的open()函数从根本上返回值是-1才代表失败,其它都代表成功。
经验教训,一定吸取!
RETURN VALUE
open and creat return the new file descriptor, or -1 if an error occurred (in which case, errno is set appropriately)
说明只有-1 是错误,其它的都可能是正确, 包括0
今天有个产品使用SIM公司产的3G CDMA2000模块, USB转2个以上串口,一个是AT指令用,一个是给PPPD拔号用。
通信模块在某些时候通信数据量大的时候死掉, 于是kill掉pppd进程, 并且给通过软件控制通信模块断电上电。发现AT指令的虚拟串口open返回值是0, 怀疑失败。
一开始以为是驱动不好, 但是后来排除了。原因是linux下的open()函数从根本上返回值是-1才代表失败,其它都代表成功。
经验教训,一定吸取!