---
name: "XpGetPrinterList"
section: "3"
platform: "linux"
package: "libxp"
version: "1.0.4-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XpGetPrinterList"
---

# XpGetPrinterList(3)

Retrieves a list of all printers supported on an X Print Server.

## NAME

XpGetPrinterList - Retrieves a list of all printers supported on an X Print Server.

## SYNOPSIS

      cc \[ flag... \] file... -lXp \[ library... \]\
\
       \#include \<X11/extensions/Print.h\>

**XPPrinterList XpGetPrinterList** ( *display,* *printer\_name,* *list\_count\_return* )\
\
       Display \**display*;\
\
       char \**printer\_name*;\
\
       int \**list\_count\_return*;

## ARGUMENTS

- *display*

  Specifies a pointer to the Display structure; returned from XOpenDisplay.

- *printer\_name*

  Specifies the name of the printer for which information is desired. If NULL, then information is returned for all printers associated with the server.

- *list\_count\_return*

  Returns the number of printers in the list.

## DESCRIPTION

XpGetPrinterList returns a list of printer records where each record describes a printer supported by the X Print Server, or NULL if any errors occur.

If *printer\_name* is NULL, then a list of all printers supported is returned. If *printer\_name* is non-NULL, only print records matching *printer\_name* are returned, and if no records match *printer\_name* , then NULL is returned.

*printer\_name* is a COMPOUND\_TEXT string, and the name and desc fields in the returned list will be in COMPOUND\_TEXT (note, ISO 8859-1 (Latin-1) is a proper subset of COMPOUND\_TEXT, so can be used directly). If *printer\_name* is in a code-set that the X Print Server cannot convert (into its operating code-set), then the X Print Server may fail to locate the requested printer. If *printer\_name* is NULL, then all printer names, regardless of their code-set, can be returned, leaving the task of specific printer recognition up to the caller.

When XpGetPrinterList is called, the caller's locale (see XpSetLocaleHinter) is included in the request as a "hint" to the X Print Server. If supported by the implementation, the X Print Server will use the hint to locate a localized description for each printer in the list. If the X Print Server cannot understand the hint, the X Print Server will choose a default. The returned printer list can be freed by calling XpFreePrinterList.

The XPPrinterList structure defined in \<X11/extensions/Print.h\> contains:

```
typedef struct {
    char *name;	/∗ name */
    char *desc;	/∗ localized description */
} XPPrinterRec, *XPPrinterList;
```

## DIAGNOSTICS

- BadAlloc

  Insufficient memory.

## SEE ALSO

**XpFreePrinterList**(3Xp), **XpSetLocaleHinter**(3Xp)
