I'm having issues getting the C sockets API to work properly in `C++` on `z/OS`.
Although I am including `sys/socket.h`, I still get **compile time errors** telling me that **`AF_INET` is not defined**.
Am I missing something obvious, or is this related to the fact that being on `z/OS` makes my problems much more complicated?
---
**Update** : Upon further investigation, I discovered that there is an `#ifdef` that I'm hitting. Apparently `z/OS` isn't happy unless I define which "type" of sockets I'm using with:
#define _OE_SOCKETS
Now, I personally have no idea what this `_OE_SOCKETS` is actually for, so if any `z/OS` sockets programmers are out there (all 3 of you), perhaps you could give me a rundown of how this all works?
---
**Test App**
#include
int main()
{
return AF_INET;
}
**Compile/Link 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.
---
A check of sys/sockets.h does include the definition I need, and as far as I can tell, it is not being blocked by any `#ifdef` statements.
I have however noticed it contains the following:
#ifdef __cplusplus
extern "C" {
#endif
which encapsulates basically the whole file? Not sure if it matters.
以上就是How to use the C socket API in C++ on z/OS的详细内容,更多请关注web前端其它相关文章!