Provided by: ncurses-doc_6.4+20240113-1ubuntu2_all bug

NAME

       printw, wprintw, mvprintw, mvwprintw, vwprintw, vw_printw - write formatted 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  with  a  “mv”  prefix first perform a cursor movement using wmove, and fail if the position is
       outside the window.

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 applications.  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 until 4.2BSD (August 1983), which
       employed it for games.  That early version 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 improvement, 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 asserting 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  implemented  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 using 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.4                                        2023-12-23                                   printw(3NCURSES)