1

当我尝试建立与存储在字符串中的给定显示的 XCB 连接时,例如dpy,我知道我可以通过两种不同的方式来做到这一点:

  1. 只需调用xcb_connect(dpy, NULL),或
  2. 将环境变量设置DISPLAY为 的值dpy并调用xcb_connect(NULL, NULL)

但是,如果我的 X 服务器需要 Xauthority 文件,我只能在设置环境XAUTHORITYXauthority 文件路径然后调用xcb_connect(dpy, NULL).

我想建立这个连接而不必设置环境变量XAUTHORITY。我知道在 XCB API 中有一个函数调用xcb_connect_to_display_with_auth_info()它接收一个xcb_auth_info_t结构,但我完全不知道如何在给定 Xauthority 文件路径的情况下构建这个结构。

我怎么能做到?

4

1 回答 1

0

结构的内容与xcb_auth_info_t的参数相同XSetAuthorization

不幸的是,这也没有很好的记录。

name 是授权方法名称(例如“MIT-MAGIC-COOKIE-1”),data 是认证数据(例如 128 位 cookie)。

如果您想避免使用XAUTHORITYenv var,但有一个 .Xauthority 文件,我认为您可以使用XauReadAuth解析 .Xauthority 文件并找到与您正在连接的显示器相对应的条目,并提取身份验证方法和数据。

于 2015-07-01T14:19:43.710 回答