将Windows平台C++移植到POSIX(Linux)C++ - WSAGetLastError()

Don*_*rty 2 c++ linux error-handling porting

我目前正在将一些Windows移动C++代码移植到标准C++.

所以我试图找到Windows特定功能的替代品.

我很难找到一个标准的C++函数,它可以帮助我替换WSAGetLastError()窗口特定的函数.

WSAGetLastError()返回Windows中套接字发生的错误的错误号.

所以我想知道是否有人知道在标准c ++中替换此功能的方法?

为连接/解除套接字的不同结果获取不同错误号的方法是足够的.

小智 10

没有支持套接字的标准C++函数.但是,POSIX套接字函数应该都将errno错误设置为变量 - 您只需要检查它 - 它应该在声明中errno.h.

  • 如果您使用非阻塞连接,那么您还需要使用 `getsockopt(socket, SOL_SOCKET, SO_ERROR, ...);` 来获取 `connect()` 状态。请注意,成功操作时不会更改 `errno` - 因此您可能希望在每次操作之前将其明确设置为零。 (2认同)
  • 将errno设置为零并不是一种好习惯.如果函数调用返回值指示错误,则应仅检查它. (2认同)