1

たとえば、文字列に格納された特定のディスプレイへの XCB 接続を確立しようとすると、次dpyの 2 つの方法で接続できることがわかります。

  1. xcb_connect(dpy, NULL)、または
  2. 環境変数DISPLAYを の値に設定し、dpyを呼び出しますxcb_connect(NULL, NULL)

ただし、X サーバーが Xauthority ファイルを必要とする場合、環境XAUTHORITYXauthority ファイル パスを設定してから を呼び出す場合にのみ、XCB 接続を確立できます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) です。

環境変数の使用を避けたいXAUTHORITYが、.Xauthority ファイルがある場合は、.Xauthority ファイルXauReadAuthを解析し、接続先のディスプレイに対応するエントリを見つけて、認証方法とデータを抽出するために使用できると思います。

于 2015-07-01T14:19:43.710 に答える