Estoy teniendo problemas para conseguir la API de sockets C para que funcione correctamente en C++el z/OS.
Aunque lo estoy incluyendo sys/socket.h, todavía recibo errores de tiempo de compilación que me dicen que AF_INETno está definido .
¿Me estoy perdiendo algo obvio, o está relacionado con el hecho de que estar en él z/OScomplica mis problemas?
Actualización : Tras una investigación más profunda, descubrí que hay una #ifdefque estoy golpeando. Aparentemente z/OSno es feliz a menos que defina con qué "tipo" de sockets estoy usando:
#define _OE_SOCKETS
Ahora, personalmente no tengo idea de para qué _OE_SOCKETSes esto , así que si hay algún z/OSprogramador de sockets (los 3), ¿tal vez podrían darme un resumen de cómo funciona todo esto?
Aplicación de prueba
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Compilar / Salida de enlace:
cxx -Wc,xplink -Wl,xplink -o inet_test inet.C
"./inet.C", line 5.16: CCN5274 (S) The name lookup for "AF_INET" did not find a declaration.
CCN0797(I) Compilation failed for file ./inet.C. Object file not created.
Una comprobación de sys / sockets.h incluye la definición que necesito y, por lo que puedo decir, no está bloqueada por ninguna #ifdefdeclaración.
Sin embargo, he notado que contiene lo siguiente:
#ifdef __cplusplus
extern "C" {
#endif
que encapsula básicamente todo el archivo? No estoy seguro si importa.