diff options
Diffstat (limited to 'upstream/opensuse-tumbleweed/man3/memleaks.3ncurses')
-rw-r--r-- | upstream/opensuse-tumbleweed/man3/memleaks.3ncurses | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/upstream/opensuse-tumbleweed/man3/memleaks.3ncurses b/upstream/opensuse-tumbleweed/man3/memleaks.3ncurses new file mode 100644 index 00000000..a36cf372 --- /dev/null +++ b/upstream/opensuse-tumbleweed/man3/memleaks.3ncurses @@ -0,0 +1,131 @@ +.\"*************************************************************************** +.\" Copyright 2019-2022,2023 Thomas E. Dickey * +.\" Copyright 2008-2010,2017 Free Software Foundation, Inc. * +.\" * +.\" Permission is hereby granted, free of charge, to any person obtaining a * +.\" copy of this software and associated documentation files (the * +.\" "Software"), to deal in the Software without restriction, including * +.\" without limitation the rights to use, copy, modify, merge, publish, * +.\" distribute, distribute with modifications, sublicense, and/or sell * +.\" copies of the Software, and to permit persons to whom the Software is * +.\" furnished to do so, subject to the following conditions: * +.\" * +.\" The above copyright notice and this permission notice shall be included * +.\" in all copies or substantial portions of the Software. * +.\" * +.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * +.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * +.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * +.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * +.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * +.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * +.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * +.\" * +.\" Except as contained in this notice, the name(s) of the above copyright * +.\" holders shall not be used in advertising or otherwise to promote the * +.\" sale, use or other dealings in this Software without prior written * +.\" authorization. * +.\"*************************************************************************** +.\" +.\" $Id: curs_memleaks.3x,v 1.33 2023/12/23 16:22:08 tom Exp $ +.TH memleaks 3NCURSES 2023-12-23 "ncurses 6.4" "Library calls" +.ie \n(.g \{\ +.ds `` \(lq +.ds '' \(rq +.\} +.el \{\ +.ie t .ds `` `` +.el .ds `` "" +.ie t .ds '' '' +.el .ds '' "" +.\} +. +.de bP +.ie n .IP \(bu 4 +.el .IP \(bu 2 +.. +.SH NAME +\fB\%exit_curses\fP, +\fB\%exit_terminfo\fP \- +check for memory leaks in \fIcurses\fR +.SH SYNOPSIS +.nf +\fB#include <ncursesw/curses.h> +\fBvoid exit_curses(int \fIcode\fP); +.PP +\fB#include <term.h> +\fBvoid exit_terminfo(int \fIcode\fP); +.PP +\fI/* deprecated (intentionally not declared in curses.h or term.h) */ +\fBvoid _nc_freeall(void); +\fBvoid _nc_free_and_exit(int \fIcode\fP); +\fBvoid _nc_free_tinfo(int \fIcode\fP); +.fi +.SH DESCRIPTION +These functions are used to simplify analysis of memory leaks in the +\fI\%ncurses\fP library. +.PP +Any implementation of curses must not free the memory associated with +a screen, since (even after calling \fB\%endwin\fP(3NCURSES)), it must be available +for use in the next call to \fB\%refresh\fP(3NCURSES). +There are also chunks of memory held for performance reasons. +That makes it hard to analyze curses applications for memory leaks. +When using the specially configured debugging version of the +\fI\%ncurses\fP library, +applications can call functions which free those chunks of memory, +simplifying the process of memory-leak checking. +.PP +Some of the functions are named with a \*(``_nc_\*('' prefix +because they are not intended for use in the non-debugging library: +.TP 5 +\fB\%_nc_freeall\fP +This frees (almost) all of the memory allocated by \fI\%ncurses\fP. +.TP 5 +\fB\%_nc_free_and_exit\fP +This frees the memory allocated by \fI\%ncurses\fP +(like \fB\%_nc_freeall\fP), +and exits the program. +It is preferred over \fB\%_nc_freeall\fP since some of that memory +may be required to keep the application running. +Simply exiting (with the given exit-code) is safer. +.TP 5 +\fB\%_nc_free_tinfo\fP +Use this function if only the low-level terminfo functions (and +corresponding library) are used. +Like \fB\%_nc_free_and_exit\fP, it exits the program after freeing memory. +.PP +The functions prefixed \*(``_nc\*('' are normally not available; +they must be configured into the library +at build time using the \fB\%\-\-disable-leaks\fP option. +That compiles-in code that frees memory that normally would not be freed. +.PP +The \fB\%exit_curses\fP and \fB\%exit_terminfo\fP functions +call \fB\%_nc_free_and_exit\fP and \fB\%_nc_free_tinfo\fP if +the library is configured to support memory-leak checking. +If the library is not configured to support memory-leak checking, +they simply call \fBexit\fP. +.SH RETURN VALUE +These functions do not return a value. +.SH PORTABILITY +These functions are not part of X/Open Curses; +nor do other implementations of curses provide a similar feature. +.PP +In any implementation of X/Open Curses, an application can free part +of the memory allocated by curses: +.bP +The portable part of \fB\%exit_curses\fP can be freed using \fB\%delscreen\fP, +passing the \fISCREEN\fP pointer returned by \fB\%newterm\fP. +.IP +In some implementations, there is a global variable \fBsp\fP +which could be used, e.g., if the screen were only initialized +using \fB\%initscr\fP. +.bP +The portable part of \fB\%exit_terminfo\fP can be freed +using \fB\%del_curterm\fP. +.IP +In this case, there is a global variable \fB\%cur_term\fP which can be +used as parameter. +.SH SEE ALSO +\fB\%ncurses\fP(3NCURSES), +\fB\%initscr\fP(3NCURSES), +\fB\%terminfo\fP(3NCURSES) |