当我试图建立到存储在字符串中的给定显示的XCB连接(例如dpy)时,我知道我可以用两种不同的方式来实现:
只需调用xcb_connect(dpy, NULL),或
将环境变量DISPLAY设置为dpy的值并调用xcb_connect(NULL, NULL)
但是,如果我的X服务器需要一个Xauthority文件,那么我只能在设置environmentXAUTHORITYXauthority文件路径然后调用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)。
如果您想避免使用XSetAuthorizationenv var,但有一个.Xauthority文件,我认为您可以使用XAUTHORITY来解析.Xauthority文件并找到与您连接的显示器对应的条目,并提取身份验证方法和数据。

关于c - 给定Xauthority文件,调用xcb_connect_to_display_with_auth_info()的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26425458/

10-15 00:17