The refresh() and wrefresh() functions copy stdscr and win, respectively, to the terminal screen. These functions
call the wnoutrefresh() function to copy the specified window to curscr and the doupdate() function to do the actual update. The physical cursor
is mapped to the same position as the logical cursor of the last window to update curscr unless leaveok(3XCURSES) is enabled (in which case, the cursor is placed in a position that X/Open Curses finds convenient).
When outputting several windows at once, it is often more efficient to call the wnoutrefresh() and doupdate() functions directly. A call to wnoutrefresh() for each window, followed by only one call to doupdate() to update the screen, results in one burst of output, fewer characters sent, and less CPU time used.
If the win parameter to wrefresh() is the global variable curscr, the screen is immediately cleared and repainted from scratch.
For details on how the wnoutrefresh() function handles overlapping windows with broad glyphs, see the Overlapping Windows section of the curses(3XCURSES) reference manual page.
|