#include <curses.h>bool can_change_color(void);
int color_content(short color, short *red, short *green, short *blue);
bool has_colors(void);
int init_color(short color, short red, short green, short blue);
int init_pair(short pair, short f, short b);
int pair_content(short pair, short *f, short *b);
int start_color(void);
int COLOR_PAIR(int n);
int PAIR_NUMBER(int value);
extern int COLOR_PAIRS;
extern int COLORS;
The function also initialises two global external variables:
The start_color(3curses) function also restores the colors on the terminal to terminal-specific initial values. The initial background color is assumed to be black for all terminals.
The color_content(3curses) function identifies the intensity components of color number color. It stores the red, green, and blue intensity components of this color in the addresses pointed to by red, green, and blue, respectively.
For both functions, the color argument must be in the range from 0 to and including COLORS-1. Valid intensity values range from 0 (no intensity component) up to and including 1000 (maximum intensity in that component).
After defining the color pair, the macro COLOR_PAIR(n) returns the value of color pair n. This value is the color attribute as it would be extracted from a chtype. Conversely, the macro PAIR_NUMBER(value) returns the color pair number associated with the color attribute value.
The pair_content(3curses) function retrieves the component colors of a color-pair number pair. It stores the foreground and background color numbers in the variables pointed to by f and b, respectively.
With init_pair(3curses) and pair_content(3curses), the value of pair must be in a range from 0 to and including COLOR_PAIRS-1. (There may be an implementation-specific upper limit on the valid value of pair, but any such limit is at least 63.) Valid values for f and b are the range from 0 to and including COLORS-1.
The can_change_color(3curses) function returns TRUE if the terminal supports colors and can change their definitions; otherwise, it returns FALSE.
Upon successful completion, the other functions return OK; otherwise, they return ERR.
The can_change_color(3curses) and has_colors(3curses) functions facilitate writing terminal-independent programs. For example, a programmer can use them to decide whether to use color or some other video attribute.
On color terminals, a typical value of COLORS is 8 and the macros such as COLOR_BLACK return a value within the range from 0 to and including 7. However, applications cannot rely on this to be true.