XOpenDisplay(3) XLIB FUNCTIONS XOpenDisplay(3)

# [NAME](#NAME)

XOpenDisplay, XCloseDisplay - connect or disconnect to X server

# [SYNTAX](#SYNTAX)

Display \*XOpenDisplay(\_Xconst char \**display\_name*);

int XCloseDisplay(Display \**display*);

# [ARGUMENTS](#ARGUMENTS)

[*display*](#display)

Specifies the connection to the X server.

[*display\_name*](#display_name)

Specifies the hardware display name, which determines the display and communications domain to be used. On a POSIX-conformant system, if the display\_name is NULL, it defaults to the value of the DISPLAY environment variable.

# [DESCRIPTION](#DESCRIPTION)

The **XOpenDisplay** function returns a **Display** structure that serves as the connection to the X server and that contains all the information about that X server. **XOpenDisplay** connects your application to the X server through TCP or DECnet communications protocols, or through some local inter-process communication protocol. If the hostname is a host machine name and a single colon (:) separates the hostname and display number, **XOpenDisplay** connects using TCP streams. If the hostname is not specified, Xlib uses whatever it believes is the fastest transport. If the hostname is a host machine name and a double colon (::) separates the hostname and display number, **XOpenDisplay** connects using DECnet. A single X server can support any or all of these transport mechanisms simultaneously. A particular Xlib implementation can support many more of these transport mechanisms.

If successful, **XOpenDisplay** returns a pointer to a **Display** structure, which is defined in **X11/Xlib.h**. If **XOpenDisplay** does not succeed, it returns NULL. After a successful call to **XOpenDisplay**, all of the screens in the display can be used by the client. The screen number specified in the display\_name argument is returned by the **DefaultScreen** macro (or the **XDefaultScreen** function). You can access elements of the **Display** and **Screen** structures only by using the information macros or functions. For information about using macros and functions to obtain information from the **Display** structure, see section 2.2.1.

The **XCloseDisplay** function closes the connection to the X server for the display specified in the **Display** structure and destroys all windows, resource IDs (**Window**, **Font**, **Pixmap**, **Colormap**, **Cursor**, and **GContext**), or other resources that the client has created on this display, unless the close-down mode of the resource has been changed (see **XSetCloseDownMode**). Therefore, these windows, resource IDs, and other resources should never be referenced again or an error will be generated. Before exiting, you should call **XCloseDisplay** explicitly so that any pending errors are reported as **XCloseDisplay** performs a final **XSync** operation.

**XCloseDisplay** can generate a **BadGC** error.

# [SEE ALSO](#SEE_ALSO)

[**AllPlanes**(3)](/man/os/libx11/AllPlanes.3), [**XFlush**(3)](/man/os/libx11/XFlush.3), [**XSetCloseDownMode**(3)](/man/os/libx11/XSetCloseDownMode.3)  
*Xlib - C Language X Interface*

libX11 1.8.13 X Version 11

---

Document: XOpenDisplay(3) from libx11 1.8.13-r7 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libx11.git
