当我试图建立到存储在字符串中的给定显示的XCB连接(例如dpy
)时,我知道我可以用两种不同的方式来实现:
只需调用xcb_connect(dpy, NULL)
,或
将环境变量DISPLAY
设置为dpy
的值并调用xcb_connect(NULL, NULL)
。
但是,如果我的X服务器需要一个Xauthority文件,那么我只能在设置environmentXAUTHORITY
Xauthority文件路径然后调用xcb_connect(dpy, NULL)
时建立XCB连接。
我希望在不设置环境变量XAUTHORITY
的情况下建立此连接。我知道XCBAPI中有一个名为xcb_connect_to_display_with_auth_info()
的函数,它接收一个xcb_auth_info_t
结构,但是我完全不知道如何在给定Xauthority文件路径的情况下构建这个结构。
我该怎么做?
最佳答案
结构的内容与xcb_auth_info_t
的参数相同。
不幸的是,这也没有很好的记录。
name是授权方法名(例如“MIT-MAGIC-COOKIE-1”),data是身份验证数据(例如128位COOKIE)。
如果您想避免使用XSetAuthorization
env var,但有一个.Xauthority文件,我认为您可以使用XAUTHORITY
来解析.Xauthority文件并找到与您连接的显示器对应的条目,并提取身份验证方法和数据。
关于c - 给定Xauthority文件,调用xcb_connect_to_display_with_auth_info()的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26425458/