dwww Home | Manual pages | Find package

printw(3NCURSES)                 Library calls                 printw(3NCURSES)

NAME
       printw,  wprintw,  mvprintw, mvwprintw, vwprintw, vw_printw - write for-
       matted output to a curses window

SYNOPSIS
       #include <curses.h>

       int printw(const char *fmt, ...);
       int wprintw(WINDOW *win, const char *fmt, ...);
       int mvprintw(int y, int x, const char *fmt, ...);
       int mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);

       int vw_printw(WINDOW *win, const char *fmt, va_list varglist);

       /* obsolete */
       int vwprintw(WINDOW *win, const char *fmt, va_list varglist);

DESCRIPTION
       printw, wprintw, mvprintw, and mvwprintw are analogous to printf(3).  In
       effect, the string that would be output by printf(3) is  instead  output
       as  though waddstr(3NCURSES) were used with win (or stdscr) as its first
       argument.

       vwprintw and vw_printw  are  analogous  to  vprintf(3),  and  perform  a
       wprintw  using  a  variable  argument  list.   The  third  argument is a
       va_list, a pointer to a list of arguments, as defined in stdarg.h.

RETURN VALUE
       These functions return ERR upon failure and OK upon success.

       In ncurses, failure occurs if the library cannot allocate enough  memory
       for  the  buffer  into  which  the output is formatted, or if the window
       pointer win is null.

       Functions prefixed with “mv” first perform cursor movement and  fail  if
       the position (y, x) is outside the window boundaries.

NOTES
       No  wide  character  counterpart  functions  are  defined  by the “wide”
       ncurses configuration nor by any standard.  To format and write a  wide-
       character  string  to  a  curses  window, consider using swprintf(3) and
       waddwstr(3NCURSES) or similar.

PORTABILITY
       X/Open Curses Issue 4 describes these functions.  It specifies no  error
       conditions for them.

       ncurses defines vw_printw and vwprintw identically to support legacy ap-
       plications.  However, the latter is obsolete.

       •   X/Open Curses Issue 4 Version 2 (1996), marked vwprintw as requiring
           varargs.h  and  “TO BE WITHDRAWN”, and specified vw_printw using the
           stdarg.h interface.

       •   X/Open Curses Issue 5,  Draft  2  (December  2007)  marked  vwprintw
           (along  with vwscanw and the termcap interface) as withdrawn.  After
           incorporating review comments, this  became  X/Open  Curses  Issue 7
           (2009).

       •   ncurses provides vwprintw, but marks it as deprecated.

HISTORY
       While  printw was implemented in 4BSD (November 1980), it was unused un-
       til 4.2BSD (August 1983), which employed it for games.  That early  ver-
       sion  of  curses  preceded  the ANSI C standard of 1989.  It did not use
       varargs.h, though that had been available  since  Seventh  Edition  Unix
       (1979).   In 1991 (a couple of years after SVr4 was generally available,
       and after the C standard was published), other  developers  updated  the
       library, using stdarg.h internally in 4.4BSD curses.  Even with this im-
       provement,  BSD curses did not use function prototypes (nor even declare
       functions) in curses.h until 1992.

       SVr2 (1984) documented printw and wprintw tersely as “printf on  stdscr”
       and “printf on win”, respectively.

       SVr3  (1987) added mvprintw and mvwprintw, with a three-line summary as-
       serting that they were  analogous  to  printf(3),  explaining  that  the
       string  that  printf(3)  would write to the standard output stream would
       instead be output using waddstr to the given window.  SVr3  also  imple-
       mented vwprintw, describing its third parameter as a va_list, defined in
       varargs.h,  and  referred the reader to the manual pages for varargs and
       vprintf for detailed descriptions.

       SVr4 (1989) introduced no new variations of printw, but provided for us-
       ing either varargs.h or stdarg.h to define the va_list type.

       X/Open Curses Issue 4 (1995), defined  vw_printw  to  replace  vwprintw,
       stating that its va_list type is defined in stdarg.h.

SEE ALSO
       ncurses(3NCURSES),    addstr(3NCURSES),    scanw(3NCURSES),   printf(3),
       vprintf(3)

ncurses 6.5                        2025-01-18                  printw(3NCURSES)

Generated by dwww version 1.16 on Fri Oct 2 21:11:39 CEST 2026.