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_INET
nicht definiert ist .
Vermisse ich etwas Offensichtliches oder hängt dies damit zusammen, dass z/OS
meine Probleme viel komplizierter werden?
Update : Bei weiteren Untersuchungen stellte ich fest, dass es eine gibt #ifdef
, die ich treffe. Anscheinend z/OS
ist 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_SOCKETS
eigentlich ist. Wenn also z/OS
Sockets-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 #ifdef
Anweisungen 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.