define_key(3X)                                                define_key(3X)

NAME         top

       define_key - define a keycode

SYNOPSIS         top

       #include <curses.h>

       int define_key(const char *definition, int keycode);

DESCRIPTION         top

       This is an extension to the curses library.  It permits an
       application to define keycodes with their corresponding control
       strings, so that the ncurses library will interpret them just as it
       would the predefined codes in the terminfo database.

       If the given string is null, any existing definition for the keycode
       is removed.  Similarly, if the given keycode is negative or zero, any
       existing string for the given definition is removed.

RETURN VALUE         top

       The keycode must be greater than zero, and the string non-null,
       otherwise ERR is returned.  ERR may also be returned if there is
       insufficient memory to allocate the data to store the definition.  If
       no error is detected, OK is returned.

PORTABILITY         top

       These routines are specific to ncurses.  They were not supported on
       Version 7, BSD or System V implementations.  It is recommended that
       any code depending on them be conditioned using NCURSES_VERSION.

SEE ALSO         top

       keyok(3X), key_defined(3X).

AUTHOR         top

       Thomas Dickey.

COLOPHON         top

       This page is part of the ncurses (new curses) project.  Information
       about the project can be found at 
       ⟨⟩.  If you have a
       bug report for this manual page, send it to  This page was obtained from the
       project's upstream Git mirror of the CVS repository
       ⟨git://⟩ on 2019-03-06.  (At that
       time, the date of the most recent commit that was found in the repos‐
       itory was 2019-03-03.)  If you discover any rendering problems in
       this HTML version of the page, or you believe there is a better or
       more up-to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not part
       of the original manual page), send a mail to