---
name: "XSetCloseDownMode"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XSetCloseDownMode"
---

# XSetCloseDownMode(3)

control clients

## NAME

XSetCloseDownMode, XKillClient - control clients

## SYNTAX

int XSetCloseDownMode(Display \**display*, int *close\_mode*);

int XKillClient(Display \**display*, XID *resource*);

## ARGUMENTS

- *close\_mode*

  Specifies the client close-down mode. You can pass **DestroyAll**, **RetainPermanent**, or **RetainTemporary**.

- *display*

  Specifies the connection to the X server.

- *resource*

  Specifies any resource associated with the client that you want to destroy or **AllTemporary**.

## DESCRIPTION

The **XSetCloseDownMode** defines what will happen to the client's resources at connection close. A connection starts in **DestroyAll** mode. For information on what happens to the client's resources when the close\_mode argument is **RetainPermanent** or **RetainTemporary**, see section 2.6.

**XSetCloseDownMode** can generate a **BadValue** error.

The **XKillClient** function forces a close down of the client that created the resource if a valid resource is specified. If the client has already terminated in either **RetainPermanent** or **RetainTemporary** mode, all of the client's resources are destroyed. If **AllTemporary** is specified, the resources of all clients that have terminated in **RetainTemporary** are destroyed (see section 2.5). This permits implementation of window manager facilities that aid debugging. A client can set its close-down mode to **RetainTemporary**. If the client then crashes, its windows would not be destroyed. The programmer can then inspect the application's window tree and use the window manager to destroy the zombie windows.

**XKillClient** can generate a **BadValue** error.

## DIAGNOSTICS

- **BadValue**

  Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error.

## SEE ALSO

*Xlib - C Language X Interface*
