z/OS 上の C++ で C ソケット API を正しく動作させるのに問題があります。
を含めていますが、まだ定義されていない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
基本的にファイル全体をカプセル化するのはどれですか? それが重要かどうかはわかりません。