当我尝试与存储在字符串中的给定显示建立XCB连接时,例如dpy
,我知道我可以用两种不同的方式做到这一点:
xcb_connect(dpy, NULL)
或DISPLAY
设置为dpy
的值并调用xcb_connect(NULL, NULL)
。但是,如果我的X服务器需要Xauthority文件,我只能在设置环境XAUTHORITY
Xauthority文件路径后建立XCB连接,然后调用xcb_connect(dpy, NULL)
。
我想在不必设置环境变量XAUTHORITY
的情况下建立此连接。我知道XCB API中有一个名为xcb_connect_to_display_with_auth_info()
的函数,它接收xcb_auth_info_t
结构,但我完全不知道如何在Xauthority文件路径下构建这个结构。
我怎么能这样做?
答案 0 :(得分:0)
xcb_auth_info_t
结构的内容与XSetAuthorization
的参数相同。
不幸的是,这也没有得到很好的记录。
name是授权方法名称(例如“MIT-MAGIC-COOKIE-1”),数据是认证数据(例如128位cookie)。
如果你想避免使用XAUTHORITY
env var,但是有一个.Xauthority文件,我想你可以使用XauReadAuth
来解析.Xauthority文件并找到与你显示对应的条目正在连接,并提取身份验证方法和数据。