Что происходит, когда вы вызываете WaitForSingleObject() в дескрипторе, созданном с помощью CreateFile() или _get_osfhandle()?
По причинам, которые не стоит объяснять, я хотел бы использовать WaitForSingleObject(), чтобы ждать HANDLE, которую я создал с помощью _get_osfhandle(fd), где fd поступает от обычного вызова до _open(). Возможно ли это?
Я пробовал это на практике, и на некоторых машинах он работает как ожидалось (HANDLE всегда находится в сигнальном состоянии, потому что вы можете читать больше данных), а на некоторых машинах WaitForSingleObject() будет блокироваться бесконечно, если вы позволите он.
На странице MSDN для WaitForSingleObject() говорится, что единственными поддерживаемыми вещами, которые он обрабатывает, являются "уведомления об изменениях, вход в консоль, события, уведомления о ресурсах памяти, мьютексы, процессы, семафоры, потоки и ожидаемые таймеры".
Кроме того, было бы иначе, если бы я использовал CreateFile() вместо _get_osfhandle() в дескрипторе файла CRT?