Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
curs_initscr(3CURSES)	   Curses Library Functions	 curs_initscr(3CURSES)

       curs_initscr, initscr, newterm, endwin, isendwin, set_term, delscreen -
       curses screen initialization and	manipulation routines

       cc [ flag ... ] file ...	-lcurses [ library ... ]
       #include	<curses.h>

       WINDOW *initscr(void);

       int endwin(void);

       int isendwin(void);

       SCREEN *newterm(char *type, FILE	*outfd,	FILE *infd);

       SCREEN *set_term(SCREEN *new);

       void delscreen(SCREEN * sp);

       initscr() is almost always the first routine that should	be called (the
       exceptions  are	slk_init(), filter(), ripoffline(), use_env() and, for
       multiple-terminal applications, newterm().) This	determines the	termi-
       nal  type  and  initializes  all	curses data structures.	initscr() also
       causes the first	call to	refresh() to clear the screen. If  errors  oc-
       cur,  initscr()	writes	an appropriate error message to	standard error
       and exits; otherwise, a pointer is returned to stdscr().	If the program
       needs  an  indication of	error conditions, newterm() should be used in-
       stead of	 initscr(); initscr() should only be called once per  applica-

       A  program  that	 outputs  to  more  than  one  terminal	should use the
       newterm() routine for each terminal instead  of	initscr().  A  program
       that needs an indication	of error conditions, so	it can continue	to run
       in a line-oriented mode if the terminal cannot  support	a  screen-ori-
       ented  program,	would  also  use  this routine.	The routine  newterm()
       should be called	once for each terminal.	It returns a variable of  type
       SCREEN *	which should be	saved as a reference to	that terminal. The ar-
       guments are the type of the terminal to be used in place	 of  $TERM,  a
       file  pointer  for output to the	terminal, and another file pointer for
       input from the terminal (if type	is NULL, $TERM	will  be  used).   The
       program must also call endwin() for each	terminal being used before ex-
       iting from curses. If newterm() is called more than once	for  the  same
       terminal, the first terminal referred to	must be	the last one for which
       endwin()	is called.

       A program should	always call endwin() before exiting or	escaping  from
       curses  mode  temporarily.  This	 routine restores tty modes, moves the
       cursor to the lower left-hand corner of the screen and resets the  ter-
       minal  into the proper non-visual mode. Calling refresh() or doupdate()
       after a temporary escape	causes the program to resume visual mode.

       The isendwin() routine returns TRUE if endwin() has been	called without
       any subsequent calls to wrefresh(), and FALSE otherwise.

       The  set_term()	routine	is used	to switch between different terminals.
       The screen reference new	becomes	the new	current	terminal. The previous
       terminal	is returned by the routine. This is the	only routine which ma-
       nipulates SCREEN	pointers; all other routines affect only  the  current

       The  delscreen()	 routine frees storage associated with the SCREEN data
       structure.  The endwin()	routine	 does  not  do	this,  so  delscreen()
       should  be  called  after  endwin() if a	particular SCREEN is no	longer

       endwin()	returns	the integer ERR	upon failure and  OK  upon  successful

       Routines	that return pointers always return NULL	on error.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |MT-Level		     |Unsafe			   |

       curs_kernel(3CURSES),	 curs_refresh(3CURSES),	    curs_slk(3CURSES),
       curs_util(3CURSES), curses(3CURSES), attributes(5)

       The header <curses.h> automatically includes the	headers	 <stdio.h> and

       Note that initscr() and newterm() may be	macros.

SunOS 5.10			  31 Dec 1996		 curs_initscr(3CURSES)


Want to link to this manual page? Use this URL:

home | help