DISPLAY环境变量的语法是什么?

问题描述 投票:1回答:1

我正在用Linux的x86-64程序集编写程序,该程序将仅使用通过syscall指令调用的系统调用来创建X11窗口。根据DISPLAY环境变量的内容,我必须创建tcp或unix套接字。在linux手册“ man 7 X”中写着:

显示名称的主机名部分应为空字符串。例如:: 0,:1和:0.1。将选择最有效的本地交通工具。

但是,我从https://en.wikibooks.org/wiki/X_Window_Programming/XCB编译了C代码示例,并使用已更改的DISPLAY环境变量在GDB中运行了编译的可执行文件。当我将DISPLAY环境变量从DISPLAY =:0更改为DISPLAY = unix:0或DISPLAY = unix /:0或DISPLAY = unix / abc:0时,仍会创建窗口。 linux manual错误吗?DISPLAY环境变量的真正语法是什么?

linux x11
1个回答
0
投票

简短回答:X11可以通过多种传输方式运行。该评论与“本地”连接有关。

长回答:

您包含的引用是指“本地”连接。 X11系统可以在几个tarnsport层上运行。在我的系统上:

       local
               The hostname part of the display name should be the empty string.  For example:  :0, :1, and :0.1.  The most effi‐
               cient local transport will be chosen.

       TCPIP
               The hostname part of the display name should be the server machine's hostname or IP address.  Full Internet names,
               abbreviated names, IPv4 addresses, and IPv6 addresses are all allowed.  For  example:  x.org:0,  expo:0,  [::1]:0,
               198.112.45.11:0, bigmachine:1, and hydra:0.1.

而且,许多系统支持在unix套接字上运行,该套接字(至少在过去)比TCP连接更有效。

© www.soinside.com 2019 - 2024. All rights reserved.