В Windows у вас есть "SOCKET_ERROR" и "INVALID_SOCKET". Но читая документацию по сокету для Linux, я могу только найти STDERR_FILENO, но это похоже на любой дескриптор файла, а не c для дескрипторов файла сокета , так что я не думаю, что это было бы полезно для определения состояния дескриптора файла сокета Linux.
Вот пример кода сокета Windows для примера:
// create a socket for connecting to a server
ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol);
if (ConnectSocket == INVALID_SOCKET)
{
WSACleanup();
fclose(fName);
return 4;
}