У меня есть HANDLE подобное:Преобразование Дескриптор файла дескриптора
HANDLE hPipe = CreateNamedPipe(...)
можно преобразовать hPipe в File Descriptor (INT)?
Мне нужно это, потому что я реализовал в C++ код для работы с TLS с использованием OpenSSL. Это работает как шарм с сокетами TCP, но мне действительно нужно использовать его над Namedpipe.
Функция OpenSSL, SSL_set_fd(SSL *ssl, int fd) принимает только FileDescriptor что является INT, а не HANDLE.
Примечание: Я также попытался пользоваться приведенной ниже функции, но не работал (возвращение 3):
int fd = _open_osfhandle(reinterpret_cast<intptr_t>(hPipe), 0);
Вы сначала назвали 'ConnectNamedPipe'? Возможно, не удастся создать файловый дескриптор для несвязанного канала. –
Да, я сначала вызвал «ConnectNamedPipe (hPipe, NULL)», а затем «_open_osfhandle (...)». – user2538743
Чтобы быть более конкретным, я использую пример Microsoft [Сервер многопоточных труб] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365588%28v=vs.85%29.aspx), и я вызываю «_open_osfhandle (...)» в одной строке над первым «ReadFile (..)». – user2538743