---
name: "menu_format"
section: "3x"
platform: "linux"
package: "ncurses"
version: "6.6-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/menu_format/3x"
---

# menu\_format(3x)

set and get menu sizes

## NAME

**set\_menu\_format**, **menu\_format** - set and get menu sizes

## SYNOPSIS

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

**int set\_menu\_format(MENU \****menu***, int** *rows***, int** *cols***);** **void menu\_format(const MENU \****menu***, int \****rows***, int \****cols***);**

## DESCRIPTION

**The function set\_menu\_format sets the maximum display size of the given** **menu.** **If this size is too small to display all menu items, the menu will be** **made scrollable.** **If this size is larger than the menus subwindow and the** **subwindow is too small to display all menu items, post\_menu will fail.**

**The default format is 16 rows, 1 column.** **Calling set\_menu\_format with a** **null menu pointer will change this default.** **A zero row or column argument to** **set\_menu\_format is interpreted as a request not to change the current** **value.**

**The function menu\_format returns the maximum-size constraints for the** **given menu into the storage addressed by rows and cols.**

## RETURN VALUE

**These routines returns one of the following:**

- **E\_OK**

  **The routine succeeded.**

- **E\_SYSTEM\_ERROR**

  **System error occurred (see [errno(3)](/errno/3.md)).**

- **E\_BAD\_ARGUMENT**

  **Routine detected an incorrect or out-of-range argument.**

- **E\_POSTED**

  **The menu is already posted.**

- **E\_NOT\_CONNECTED**

  **No items are connected to the menu.**

## PORTABILITY

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

## AUTHORS

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

## SEE ALSO

**curses(3X),** **menu(3X)**
