XSetCloseDownMode man page
XSetCloseDownMode, XKillClient — control clients
int XSetCloseDownMode(Display *display, int close_mode);
int XKillClient(Display *display, XID resource);
Specifies the client close-down mode. You can pass DestroyAll, RetainPermanent, or RetainTemporary.
Specifies the connection to the X server.
Specifies any resource associated with the client that you want to destroy or AllTemporary.
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.
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.
Xlib - C Language X Interface
XAllocStandardColormap(3), xkill(1), XOpenDisplay(3).
XKillClient(3) is an alias of XSetCloseDownMode(3).