Wie die C-socket-API in C++ auf z/OS

Habe ich Probleme bekommen die C-sockets-API, um richtig zu arbeiten, in C++ auf z/OS.

Obwohl, ich bin auch sys/socket.h bekomme ich noch compile-Zeit Fehler, mir zu sagen, dass AF_INET ist nicht definiert.

Übersehe ich etwas offensichtliches, oder ist dies mit der Tatsache, dass auf der z/OS macht meine Probleme viel komplizierter?


Update: Bei der weiteren Untersuchung habe ich entdeckt, dass es eine #ifdef dass ich mich schlagen. Offenbar z/OS ist nicht glücklich, es sei denn ich definieren, welche "Art" von buchsen, die ich verwende mit:

#define _OE_SOCKETS

Nun, ich persönlich habe keine Ahnung, was diese _OE_SOCKETS ist eigentlich, also wenn z/OS Steckdosen-Programmierer gibt (alle 3 von Ihnen), könnten Sie vielleicht geben Sie mir einen überblick, wie das alles funktioniert?


Test-App

#include <sys/socket.h>

int main()
{
    return AF_INET;
}

Compile - /Link-Ausgang:

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.

Einen Scheck von sys/sockets.h enthält die definition, die ich brauche, und soweit ich sagen kann, es ist nicht blockiert, von jeder #ifdef-Anweisungen.

Habe ich jedoch bemerkt, enthält es die folgenden:

#ifdef __cplusplus
  extern "C" {
#endif

welche kapselt im wesentlichen die gesamte Datei. Nicht sicher, wenn es darauf ankommt.

InformationsquelleAutor Jax | 2008-08-01
Schreibe einen Kommentar