menu\_userptr(3X) Library calls menu\_userptr(3X)

# [NAME](#NAME)

**set\_menu\_userptr**, **menu\_userptr** - associate application data with a menu item

# [SYNOPSIS](#SYNOPSIS)

```
#include <menu.h>
```

```
int set_menu_userptr(MENU *menu, void *userptr);
void *menu_userptr(const MENU *menu);
```

# [DESCRIPTION](#DESCRIPTION)

Every menu and every menu item has a field that can be used to hold application-specific data (that is, the menu-driver code leaves it alone). These functions get and set the menu user pointer field.

# [RETURN VALUE](#RETURN_VALUE)

**menu\_userptr** returns a pointer (which may be *NULL*). It does not set **errno**.

**set\_menu\_userptr** returns **E\_OK** (success).

# [PORTABILITY](#PORTABILITY)

These routines emulate the System V menu library. They were not supported on Version 7 or BSD versions.

The user pointer is a void pointer. We chose not to leave it as a char pointer for SVr4 compatibility.

# [AUTHORS](#AUTHORS)

Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S. Raymond.

# [SEE ALSO](#SEE_ALSO)

[**curses**(3X)](/man/os/ncurses/curses.3X), [**menu**(3X)](/man/os/ncurses/menu.3X)

2024-12-28 ncurses 6.6

---

Document: menu_userptr(3x) from ncurses 6.6.20261024-r0 (Chainguard OS)
Source: https://github.com/ThomasDickey/ncurses-snapshots
