4.3BSD-Reno/share/man/cat2/brk.0

Compare this file to the similar file:
Show the results in this format:




BRK(2)			      1986			   BRK(2)



NNAAMMEE
     brk, sbrk - change data segment size

SSYYNNOOPPSSIISS
     #include <sys/types.h>

     cchhaarr **bbrrkk((aaddddrr))
     cchhaarr **aaddddrr;;

     cchhaarr **ssbbrrkk((iinnccrr))
     iinntt iinnccrr;;

DDEESSCCRRIIPPTTIIOONN
     _B_r_k sets the system's idea of the lowest data segment loca-
     tion not used by the program (called the break) to _a_d_d_r
     (rounded up to the next multiple of the system's page size).
     Locations greater than _a_d_d_r and below the stack pointer are
     not in the address space and will thus cause a memory viola-
     tion if accessed.

     In the alternate function _s_b_r_k, _i_n_c_r more bytes are added to
     the program's data space and a pointer to the start of the
     new area is returned.

     When a program begins execution via _e_x_e_c_v_e the break is set
     at the highest location defined by the program and data
     storage areas.  Ordinarily, therefore, only programs with
     growing data areas need to use _s_b_r_k.

     The current value of the program break is reliably returned
     by ``sbrk(0)'' (see also _e_n_d(3)).	The _g_e_t_r_l_i_m_i_t(2) system
     call may be used to determine the maximum permissible size
     of the _d_a_t_a segment; it will not be possible to set the
     break beyond the _r_l_i_m__m_a_x value returned from a call to
     _g_e_t_r_l_i_m_i_t, e.g. "etext + rlp->rlim_max." (see _e_n_d(3) for the
     definition of _e_t_e_x_t).

RREETTUURRNN VVAALLUUEE
     Zero is returned if the _b_r_k could be set; -1 if the program
     requests more memory than the system limit.  _S_b_r_k returns -1
     if the break could not be set.

EERRRROORRSS
     _S_b_r_k will fail and no additional memory will be allocated if
     one of the following are true:

     [ENOMEM]	    The limit, as set by _s_e_t_r_l_i_m_i_t(2), was
		    exceeded.

     [ENOMEM]	    The maximum possible size of a data segment
		    (compiled into the system) was exceeded.




Printed 7/27/90               June				1






BRK(2)			      1986			   BRK(2)



     [ENOMEM]	    Insufficient space existed in the swap area
		    to support the expansion.

SSEEEE AALLSSOO
     execve(2), getrlimit(2), malloc(3), end(3)

BBUUGGSS
     Setting the break may fail due to a temporary lack of swap
     space.  It is not possible to distinguish this from a
     failure caused by exceeding the maximum size of the data
     segment without consulting _g_e_t_r_l_i_m_i_t.












































Printed 7/27/90               June				2