Solaris 11 で次のプログラムを実行中に問題が発生しました。XOpenDisplay 関数は常に NULL を返します。同じプログラムが Solaris 10 上で正常に動作します。
#include <stdio.h>
#include <X11/Xlib.h>
int main(int argc, char** argv) {
Display *ptr = 0;
ptr = XOpenDisplay("machine_name:0.0");
if (0 == ptr)
{
printf("NULL received\n");
}
else
{
printf("Valid pointer received\n");
}
return 0;
}
調査中に、Solaris 11 が TCP プロトコルを使用した直接の X11 接続を受け入れないことがわかりました。次のコマンドを使用して、X11 サーバーの TCP を有効にしました。
svccfg -s x11-server setprop options/tcp_listen=true
しかし、関数の呼び出し中に XOpenDisplay はまだ NULL を返し、「プロトコルが指定されていません」というエラーが表示されます。