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

# xcb\_shm\_create\_segment(3)

Asks the server to allocate a shared memory segment.

## NAME

xcb\_shm\_create\_segment - Asks the server to allocate a shared memory segment.

## SYNOPSIS

**#include \<xcb/shm.h\>**

### Request function

xcb\_shm\_create\_segment\_cookie\_t **xcb\_shm\_create\_segment**(xcb\_connection\_t \**conn*, xcb\_shm\_seg\_t *shmseg*, uint32\_t *size*, uint8\_t *read\_only*);

### Reply datastructure

```

typedef struct xcb_shm_create_segment_reply_t {
    uint8_t  response_type;
    uint8_t  nfd;
    uint16_t sequence;
    uint32_t length;
    uint8_t  pad0[24];
} xcb_shm_create_segment_reply_t;
```

### Reply function

xcb\_shm\_create\_segment\_reply\_t \***xcb\_shm\_create\_segment\_reply**(xcb\_connection\_t \**conn*, xcb\_shm\_create\_segment\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);\

## REQUEST ARGUMENTS

- *conn*

  The XCB connection to X11.

- *shmseg*

  A shared memory segment ID created with xcb\_generate\_id().

- *size*

  The size of the segment to create.

- *read\_only*

  True if the server should map the segment read-only; otherwise false.

## REPLY FIELDS

- *response\_type*

  The type of this reply, in this case *XCB\_SHM\_CREATE\_SEGMENT*. This field is also present in the *xcb\_generic\_reply\_t* and can be used to tell replies apart from each other.

- *sequence*

  The sequence number of the last request processed by the X11 server.

- *length*

  The length of the reply, in words (a word is 4 bytes).

- *nfd*

  The number of file descriptors sent by the server.  Will always be 1.

- *shm\_fd*

  TODO: NOT YET DOCUMENTED.

## DESCRIPTION

Asks the server to allocate a shared memory segment.  The server’s reply will include a file descriptor for the client to pass to mmap().

## RETURN VALUE

Returns an *xcb\_shm\_create\_segment\_cookie\_t*. Errors have to be handled when calling the reply function *xcb\_shm\_create\_segment\_reply*.

If you want to handle errors in the event loop instead, use *xcb\_shm\_create\_segment\_unchecked*. See **[xcb-requests(3)](/xcb-requests/3.md)** for details.

## ERRORS

This request does never generate any errors.

## SEE ALSO

[**xcb-requests**(3)](/xcb-requests/3.md)

## AUTHOR

Generated from shm.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
