在Solaris 11上运行以下程序时出现问题.XOpenDisplay函数始终返回NULL。同样的程序运行在精细Solaris 10中Solaris 11 XOpenDisplay返回NULL
#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协议的Direct X11连接。 我使用以下命令启用了TCP for X11-server。
svccfg -s x11-server setprop options/tcp_listen=true
但在调用函数XOpenDisplay仍然返回NULL,现在我得到的错误为“无协议指定”。
:我直接登录到Solaris 11的X会话中。我的应用程序运行在同一主机上,并使用主机名:0.0打开与同一主机的连接。如果我给出命令ssh -X username @ host_name,那么应用程序将正常运行并且能够打开与X服务器的连接。但每次我打开新的终端时,我都必须发出这个命令。我应该如何使用.Xauthority配置身份验证?你有任何oracle链接分享? – Sumeet 2013-04-11 12:24:24