在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