Your company here — click to reach over 10,000 unique daily visitors

curs_scr_dump.3x - Man Page

read/write a curses screen from/to a file


#include <curses.h>

int scr_dump(const char *filename);
int scr_restore(const char *filename);
int scr_init(const char *filename);
int scr_set(const char *filename);


curses provides applications the ability to write the contents of the screen to a file and read them back. To read/write a window (rather than the whole screen) from/to a file, use getwin(3X) and putwin(3X), respectively.


scr_dump writes to filename the contents of the virtual screen; see curscr(3X).


scr_restore updates the virtual screen to contain the contents of filename (if it was validly written with scr_dump). No refresh is performed; after performing any further desired updates, call doupdate(3X) or similar.


scr_init reads filename, using it to initialize curses data structures describing the state of the terminal screen. If these data are valid, curses bases its next update of the screen on this information rather than clearing it and starting from scratch.

The data fail the validity check

  • if the terminal employs terminfo capabilities exit_ca_mode (rmcup) or non_rev_rmcup (nrrmc) are defined, or
  • if curses knows that the terminal has been written to since the preceding scr_dump call.

scr_init could be used after initscr(3X) or system(3) to share the screen with another process that has done a scr_dump after endwin(3X).


The scr_set routine is a combination of scr_restore and scr_init.  It tells the program that the information in filename is what is currently on the screen, and also what the program wants on the screen. This can be thought of as a screen inheritance function.

Return Value

These functions return OK on success and ERR on failure.

X/Open defines no failure conditions. In this implementation, each function fails if it cannot open filename.


scr_init, scr_set, and scr_restore may be macros.


X/Open Curses, Issue 4, describes these functions.

SVr4 omitted the const qualifiers.

SVr4 documentation describes scr_init such that the dump data is also considered invalid “if the time-stamp of the tty is old” but does not define “old”.

See Also

curses(3X), curs_initscr(3X), curs_refresh(3X), curs_util(3X), system(3), scr_dump(5)

Referenced By

The man pages scr_dump.3x(3), scr_init.3x(3), scr_restore.3x(3) and scr_set.3x(3) are aliases of curs_scr_dump.3x(3).

2023-12-30 ncurses 6.4 Library calls