Source Code File 15-06_wputfile

15-06_wputfile.c

#include <ncurses.h>

int main()
{
    FILE *wfile;
    WINDOW *win;
    int r;

    initscr();
    start_color();
    init_pair(1,COLOR_WHITE,COLOR_BLUE);
    refresh();

/* Crete and show window */
    win = newwin(3,10,7,30);
    wbkgd(win,COLOR_PAIR(1));
    box(win,0,0);
    mvwaddstr(win,1,2,"Window");
    wrefresh(win);
    getch();
    
/* open file */
    wfile = fopen("window.win","w");
    if( wfile==NULL )
    {
        endwin();
        puts("File creation error");
        return(1);
    }

/* write window data */
    r = putwin(win,wfile);
    fclose(wfile);
    addstr("Window data written");
    refresh();
    getch();

    endwin();
    return(0);
}

Output Screenshot

Notes

* Only the window data from window win is written to a file, not the entire screen.

* My default terminal setting shows orange text (as you see throughout this site). That's because I was fond of amber monitors back in the day. Still, the standard screen output for this code is white text. That's probably an effect of the start_color() function; though a color pair isn't initialized for the standard screen, I believe start_color() resets the terminal defaults.