z/OS 上の C++ で C ソケット API を使用する方法

IBM マニュアルのコピーを手元に保管しておいてください:

  • z/OS V1R11.0 XL C/C++ プログラミング ガイド
  • z/OS V1R11.0 XL C/C++ ランタイム ライブラリ リファレンス

IBM の出版物は概して非常に優れていますが、その形式に慣れ、どこで答えを探すべきかを知る必要があります。使用したい機能が「機能テスト マクロ」によって保護されていることがよくあります

親しみやすいシステム・プログラマーに依頼して、XL C/C++ ランタイム・ライブラリー・リファレンス:マニュアル・ページをシステムにインストールしてください。次に、「man connect」などを実行して、ソケット connect() API の man ページを表示できます。これを行うと、次のように表示されます:

フォーマット

X/開く

#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/socket.h>

int connect(int socket, const struct sockaddr *address, socklen_t address_len);

バークレーソケット

#define _OE_SOCKETS
#include <sys/types.h>
#include <sys/socket.h>

int connect(int socket, struct sockaddr *address, int address_len);

GNU/Linux の C++ で BSD ソケット API を使用しても問題はありませんでした。使用したサンプル プログラムは次のとおりです。

#include <sys/socket.h>

int
main()
{
    return AF_INET;
}

したがって、これについての私の見解は、z/OS がおそらくここでの複雑な要因であるということですが、私は z/OS を使用したことがなく、ましてやプログラムを作成したことがないため、これを明確に言うことはできません。 :-P


z/OS UNIX System Services ソケットの使用を参照してください。 「z/OS XL C/C++ プログラミング ガイド」のセクション。必要なヘッダー ファイルをインクルードし、適切な #defines を使用していることを確認してください。

ドキュメントへのリンクは長年にわたって変更されていますが、ibm.com のサポートとダウンロード セクションの現在の場所を見つけて、タイトルでドキュメントを検索することで、簡単にアクセスできるはずです。