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

FreeBSD Manual Pages

  
 
  

home | help
BRK(2)                    NetBSD Programmer's Manual                    BRK(2)

NAME
     brk, sbrk - change data segment size

SYNOPSIS
     #include <sys/types.h>

     int
     brk(const char *addr)

     char *
     sbrk(int incr)

DESCRIPTION
     The brk and sbrk functions are historical curiosities left over from ear-
     lier days before the advent of virtual memory management.   The brk()
     function sets the break or lowest address of a process's data segment
     (uninitialized data) to addr (immediately above bss).  Data addressing is
     restricted between addr and the lowest stack pointer to the stack seg-
     ment.  Memory is allocated by brk in page size pieces; if addr is not
     evenly divisible by the system page size, it is increased to the next
     page boundary.

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

RETURN VALUES
     Brk returns 0 if successful; -1 if the process requests more memory than
     than allowed by the system limit.  The sbrk function returns 0 if suc-
     cessful, otherwise the error EOPNOTSUPP is returned.

SEE ALSO
     execve(2),  getrlimit(2),  malloc(3),  end(3)

BUGS
     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 getrlimit.

HISTORY
     A brk() function call appeared in Version 7 AT&T UNIX.

4th Berkeley Distribution       October 2, 1994                              1

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | BUGS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sbrk&sektion=2&manpath=NetBSD+1.0>

home | help