curs_printw 3x 2023-10-07 ncurses 6.4 Library calls

curs_printw(3x)                  Library calls                 curs_printw(3x)




NAME

       printw,  wprintw,  mvprintw,  mvwprintw,  vwprintw,  vw_printw  - write
       formatted output to curses windows


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

       The printw, wprintw, mvprintw and mvwprintw routines are  analogous  to
       printf  [see printf(3)].  In effect, the string that would be output by
       printf is output instead as though  waddstr  were  used  on  the  given
       window.

       The  vwprintw  and  vw_printw  routines  are  analogous to vprintf [see
       printf(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

       Routines that return an integer return ERR upon failure  and  OK  (SVr4
       only  specifies  "an  integer  value  other  than ERR") upon successful
       completion.

       X/Open defines no error conditions.  In this implementation,  an  error
       may be returned if it cannot allocate enough memory for the buffer used
       to format the results.  It will return an error if the  window  pointer
       is null.

       Functions  with  a  "mv"  prefix  first perform a cursor movement using
       wmove, and return an error if the position is outside the window, or if
       the window pointer is null.


HISTORY

       While printw was implemented in 4BSD, it was unused until 4.2BSD (which
       used it in games).  That early version of curses was before the ANSI  C
       standard.   It  did not use <varargs.h>, though that was available.  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 (or even
       declare functions) in the <curses.h> header until 1992.

       SVr2 documented printw, wprintw  tersely  as  "printf  on  stdscr"  and
       tersely as "printf on win", respectively.

       SVr3  added  mvprintw,  and mvwprintw, with a three-line summary saying
       that they were analogous to printf(3), explaining that the string which
       would be output from printf(3) would instead be output using waddstr on
       the given window.  SVr3 also added  vwprintw,  saying  that  the  third
       parameter  is  a  va_list,  defined  in  <varargs.h>, and referring the
       reader to the  manual  pages  for  varargs  and  vprintf  for  detailed
       descriptions.

       SVr4  added  no  new  variations  of  printw,  but  provided  for using
       <varargs.h> or <stdarg.h> to define the va_list type.

       X/Open Curses added vw_printw to replace  vwprintw,  stating  that  its
       va_list definition requires <stdarg.h>.


PORTABILITY

       In  this  implementation,  vw_printw  and  vwprintw  are equivalent, to
       support  legacy  applications.   However,  the  latter  (vwprintw)   is
       obsolete:

       o   The  XSI  Curses  standard, Issue 4 described these functions.  The
           function vwprintw is marked TO BE WITHDRAWN, and is to be  replaced
           by a function vw_printw using the <stdarg.h> interface.

       o   The  Single Unix Specification, Version 2 states that vw_printw  is
           preferred  to  vwprintw  since  the   latter   requires   including
           <varargs.h>,  which  cannot be used in the same file as <stdarg.h>.
           This implementation uses <stdarg.h> for both, because  that  header
           is included in <curses.h>.

       o   X/Open  Curses, Issue 5 (December 2007) marked vwprintw (along with
           vwscanw and the termcap interface) as withdrawn.


SEE ALSO

       curses(3x),    curs_addstr(3x),    curs_scanw(3x),    curs_termcap(3x),
       printf(3), vprintf(3)



ncurses 6.4                       2023-10-07                   curs_printw(3x)