मैं मुद्दों में ठीक से काम करने के लिए सी सॉकेट एपीआई हो रही हो रही है C++
पर z/OS
।
यद्यपि मैं इसमें शामिल sys/socket.h
हूं, फिर भी मुझे यह बताते हुए संकलन समय त्रुटियां मिलती हैं कि AF_INET
यह परिभाषित नहीं है ।
क्या मुझे कुछ स्पष्ट याद आ रहा है, या यह इस तथ्य से संबंधित है कि होने के नाते z/OS
मेरी समस्याओं को और अधिक जटिल बना देता है?
अपडेट : आगे की जांच के बाद, मुझे पता चला कि एक है #ifdef
जो मैं मार रहा हूं। जाहिर है z/OS
जब तक कि मैं परिभाषित जो सॉकेट मैं के साथ उपयोग कर रहा हूँ की "टाइप" खुश नहीं है:
#define _OE_SOCKETS
अब, मुझे व्यक्तिगत रूप से पता नहीं है कि यह _OE_SOCKETS
वास्तव में किसके लिए है, इसलिए यदि कोई भी z/OS
सॉकेट प्रोग्रामर बाहर है (आप सभी 3), तो शायद आप मुझे इस बात का एक विवरण दे सकते हैं कि यह सब कैसे काम करता है?
टेस्ट ऐप
#include <sys/socket.h>
int main()
{
return AF_INET;
}
संकलन / लिंक आउटपुट:
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.
Sys / sockets.h के एक चेक में मेरी ज़रूरत की परिभाषा शामिल है, और जहाँ तक मैं बता सकता हूँ, इसे किसी भी #ifdef
बयान से अवरुद्ध नहीं किया जा रहा है ।
लेकिन मैंने देखा है कि इसमें निम्नलिखित शामिल हैं:
#ifdef __cplusplus
extern "C" {
#endif
जो मूल रूप से पूरी फाइल को इनकैप्सुलेट करता है? यकीन नहीं होता अगर यह मायने रखता है।