可以_open()返回有效的负fd?

时间:2009-10-27 22:45:07

标签: winapi visual-c++

win32的_open()是否有可能返回有效的FD?

换句话说,就是比较

 if( (fd=_open(...)) < 0) error...;

与表单一样安全

 if( (fd=_open(...)) == -1) error...;

我在问,因为所有的msdn例子都是 格式为if(fd == -1 ),永远不会形成if( fd < 0)

2 个答案:

答案 0 :(得分:1)

没有。负值都是错误。实际上,如果你看一下read(),它会断言fd在0到31之间。

答案 1 :(得分:1)

Windows文件描述符是从MS-DOS 2.0文件句柄借来的,这些句柄松散地基于Unix文件描述符,所有这些都是进程文件控制块表的索引。因此,有效的文件句柄必须是非负的。