win32的_open()
是否有可能返回有效的FD?
换句话说,就是比较
if( (fd=_open(...)) < 0) error...;
与表单一样安全
if( (fd=_open(...)) == -1) error...;
?
我在问,因为所有的msdn例子都是
格式为if(fd == -1 )
,永远不会形成if( fd < 0)
。
答案 0 :(得分:1)
没有。负值都是错误。实际上,如果你看一下read(),它会断言fd在0到31之间。
答案 1 :(得分:1)
Windows文件描述符是从MS-DOS 2.0文件句柄借来的,这些句柄松散地基于Unix文件描述符,所有这些都是进程文件控制块表的索引。因此,有效的文件句柄必须是非负的。