---
name: "XOpenDisplay"
section: "3x"
platform: "linux"
package: "libx11-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XOpenDisplay/3x"
---

# XOpenDisplay(3x)

connect or disconnect to X server

## NAME

XOpenDisplay, XCloseDisplay - connect or disconnect to X server

## SYNTAX

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

int XCloseDisplay(Display \**display*);

## ARGUMENTS

- *display*

  Specifies the connection to the X server.

- *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

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

AllPlanes(3X11), XFlush(3X11), XSetCloseDownMode(3X11)\
 *Xlib - C Language X Interface*
