Estou tendo problemas recebendo o soquetes C API para funcionar corretamente no C++
on z/OS
.
Embora eu esteja incluindo sys/socket.h
, ainda recebo erros de tempo de compilação informando que isso AF_INET
não está definido .
Estou perdendo algo óbvio, ou isso está relacionado ao fato de estar ligado z/OS
torna meus problemas muito mais complicados?
Atualização : Após uma investigação mais aprofundada, descobri que há um #ifdef
que estou atingindo. Aparentemente, z/OS
não é feliz, a menos que eu defina com qual "tipo" de soquetes estou usando:
#define _OE_SOCKETS
Agora, pessoalmente, eu não tenho ideia do que _OE_SOCKETS
é isso, de modo que, se houver algum z/OS
programador de soquetes (todos vocês três), talvez você possa me dar um resumo de como tudo isso funciona?
Test App
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Saída de compilação / link:
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.
Uma verificação de sys / sockets.h inclui a definição de que preciso e, tanto quanto posso dizer, ela não está sendo bloqueada por nenhuma #ifdef
instrução.
No entanto, notei que ele contém o seguinte:
#ifdef __cplusplus
extern "C" {
#endif
que encapsula basicamente o arquivo inteiro? Não tenho certeza se isso importa.