Je vais avoir des problèmes à obtenir l'API C fonctionne correctement dans C++
le z/OS
.
Bien que j'inclus sys/socket.h
, j'obtiens toujours des erreurs de compilation me disant que ce AF_INET
n'est pas défini .
Est-ce que je rate quelque chose d'évident ou est-ce lié au fait qu'être en marche z/OS
rend mes problèmes beaucoup plus compliqués?
Mise à jour : après une enquête plus approfondie, j'ai découvert qu'il y a un #ifdef
que je frappe. Apparemment, z/OS
je ne suis pas heureux à moins que je définisse avec quel «type» de sockets j'utilise:
#define _OE_SOCKETS
Maintenant, je n'ai personnellement aucune idée de ce à quoi cela _OE_SOCKETS
sert réellement, donc s'il y a des z/OS
programmeurs de sockets (vous trois), vous pourriez peut-être me donner un aperçu de la façon dont tout cela fonctionne?
Tester l'application
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Compiler / Lier la sortie:
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.
Une vérification de sys / sockets.h inclut la définition dont j'ai besoin, et pour autant que je sache, elle n'est bloquée par aucune #ifdef
déclaration.
J'ai cependant remarqué qu'il contient les éléments suivants:
#ifdef __cplusplus
extern "C" {
#endif
qui encapsule essentiellement le fichier entier? Je ne sais pas si cela compte.