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