Sto avendo problemi di ottenere l'API socket C per funzionare correttamente in C++
su z/OS
.
Anche se sto includendo sys/socket.h
, ricevo ancora errori di compilazione che mi dicono che AF_INET
non è definito .
Mi sto perdendo qualcosa di ovvio, o è collegato al fatto che essere su z/OS
rende i miei problemi molto più complicati?
Aggiornamento : su ulteriori indagini, ho scoperto che c'è un #ifdef
che sto colpendo. Apparentemente z/OS
non è felice a meno che non definisca con quale "tipo" di socket sto usando:
#define _OE_SOCKETS
Ora, personalmente non ho idea di cosa _OE_SOCKETS
sia effettivamente fatto, quindi se qualche z/OS
programmatore di socket è là fuori (tutti e tre), forse potresti darmi una carrellata di come funziona tutto questo?
App di prova
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Compila / collega output:
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.
Un controllo di sys / sockets.h include la definizione di cui ho bisogno e, per quanto ne so, non viene bloccato da alcuna #ifdef
istruzione.
Ho comunque notato che contiene quanto segue:
#ifdef __cplusplus
extern "C" {
#endif
quale incapsula sostanzialmente l'intero file? Non sono sicuro che sia importante.