Ich habe Probleme der C - Sockets API an die Arbeit richtig in C++auf z/OS.
Obwohl ich einschließe sys/socket.h, erhalte ich immer noch Fehler bei der Kompilierung, die mir mitteilen, dass dies AF_INETnicht definiert ist .
Vermisse ich etwas Offensichtliches oder hängt dies damit zusammen, dass z/OSmeine Probleme viel komplizierter werden?
Update : Bei weiteren Untersuchungen stellte ich fest, dass es eine gibt #ifdef, die ich treffe. Anscheinend z/OSist es nicht glücklich, wenn ich nicht definiere, mit welchem "Typ" von Steckdosen ich arbeite:
#define _OE_SOCKETS
Nun, ich persönlich habe keine Ahnung, wofür das _OE_SOCKETSeigentlich ist. Wenn also z/OSSockets-Programmierer da draußen sind (Sie alle drei), könnten Sie mir vielleicht einen Überblick darüber geben, wie das alles funktioniert?
Test App
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Ausgabe kompilieren / verknüpfen:
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.
Eine Überprüfung von sys / sockets.h enthält die Definition, die ich benötige, und soweit ich das beurteilen kann, wird sie nicht durch #ifdefAnweisungen blockiert .
Ich habe jedoch bemerkt, dass es Folgendes enthält:
#ifdef __cplusplus
extern "C" {
#endif
Was kapselt im Grunde die gesamte Datei? Ich bin mir nicht sicher, ob es darauf ankommt.