может _open () вернуть действительный отрицательный fd? - PullRequest
1 голос
/ 28 октября 2009

Возможно ли, что win32 _open() вернет действительный FD, который является отрицательным?

Другими словами, это сравнение

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

столь же безопасно, как форма

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

?

Я спрашиваю, потому что все примеры MSDN
в форме if(fd == -1 ) и никогда не в форме if( fd < 0).

Ответы [ 2 ]

1 голос
/ 28 октября 2009

Файловые дескрипторы Windows заимствованы из файловых дескрипторов MS-DOS 2.0, которые были свободно основаны на файловых дескрипторах Unix, все из которых являются индексами в таблице процесса блоков управления файлами. Поэтому допустимый дескриптор файла должен быть неотрицательным.

1 голос
/ 28 октября 2009

Нет. Отрицательные значения - все ошибки. Фактически, если вы посмотрите на read (), он утверждает, что fd находится в диапазоне от 0 до 31.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...