我有一个这样的句柄:
HANDLE hPipe = CreateNamedPipe(...)
是否可以将 hPipe 转换为文件描述符 (int)?
我需要这个,因为我已经在 C++ 中实现了使用 OpenSSL 与 TLS 一起工作的代码。这就像 TCP 套接字的魅力一样,但我真的需要在 Namedpipe 上使用它。
OpenSSL 的函数 SSL_set_fd(SSL *ssl, int fd) 只接受一个整数的 FileDescriptor,而不接受一个 HANDLE。
注意: 我也试过使用下面的函数,但没有用(返回 3):
int fd = _open_osfhandle(reinterpret_cast<intptr_t>(hPipe), 0);
最佳答案
您返回的 3
不是错误,而是文件描述符句柄。如果您查看 the documentation,您会看到它返回 -1
失败,否则返回值是文件描述符。
关于c++ - 将句柄转换为文件描述符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21445516/