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

# XDrawString(3)

draw text characters

## NAME

XDrawString, XDrawString16 - draw text characters

## SYNTAX

int XDrawString(Display \**display*, Drawable *d*, GC *gc*, int *x*, int *y*, \_Xconst char \**string*, int *length*);

int XDrawString16(Display \**display*, Drawable *d*, GC *gc*, int *x*, int *y*, \_Xconst XChar2b \**string*, int *length*);

## ARGUMENTS

- *d*

  Specifies the drawable.

- *display*

  Specifies the connection to the X server.

- *gc*

  Specifies the GC.

- *length*

  Specifies the number of characters in the string argument.

- *string*

  Specifies the character string.

- *x*

  - *y*

  Specify the x and y coordinates, which are relative to the origin of the specified drawable and define the origin of the first character.

## DESCRIPTION

Each character image, as defined by the font in the GC, is treated as an additional mask for a fill operation on the drawable. The drawable is modified only where the font character has a bit set to 1. For fonts defined with 2-byte matrix indexing and used with **XDrawString16**, each byte is used as a byte2 with a byte1 of zero.

Both functions use these GC components: function, plane-mask, fill-style, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask. They also use these GC mode-dependent components: foreground, background, tile, stipple, tile-stipple-x-origin, and tile-stipple-y-origin.

**XDrawString** and **XDrawString16** can generate **BadDrawable**, **BadGC**, and **BadMatch** errors.

## DIAGNOSTICS

- **BadDrawable**

  A value for a Drawable argument does not name a defined Window or Pixmap.

- **BadGC**

  A value for a GContext argument does not name a defined GContext.

- **BadMatch**

  An **InputOnly** window is used as a Drawable.

- **BadMatch**

  Some argument or pair of arguments has the correct type and range but fails to match in some other way required by the request.

## SEE ALSO

[**XDrawImageString**(3)](/XDrawImageString/3.md), [**XDrawText**(3)](/XDrawText/3.md), [**XLoadFont**(3)](/XLoadFont/3.md)\
 *Xlib - C Language X Interface*
