Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
BRK(2)                        System Calls Manual                       BRK(2)

NAME
       brk, sbrk - change data segment size

SYNOPSIS
       #include <unistd.h>

       int brk(char *addr)

       char *sbrk(int incr)

DESCRIPTION
       Brk sets the system's idea of the lowest data segment location not used
       by the program (called the break) to addr.  Locations greater than addr
       and  below the stack pointer are not in the address space and will thus
       cause a memory violation if accessed.

       In the alternate function sbrk,  incr  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 execve 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 sbrk.

RETURN VALUE
       The  address  of  the  new break is returned if brk succeeds; -1 if the
       program requests more memory than the system limit.  Sbrk returns -1 if
       the break could not be set.

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

       [ENOMEM]       The maximum possible size of a data segment (as  set  by
                      chmem(1)) was exceeded.

       [ENOMEM]       Insufficient virtual memory space existed to support the
                      expansion.  (Minix-vmd)

SEE ALSO
       chmem(1), execve(2), malloc(3), end(3).

NOTES
       Minix-vmd rounds a small data segment limit up to 3 megabytes.

BUGS
       Setting the break may fail due to a temporary lack  of  virtual  memory
       under Minix-vmd.  It is not possible to distinguish this from a failure
       caused by exceeding the maximum size of the data segment.

4th Berkeley Distribution        May 22, 1986                           BRK(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO | NOTES | BUGS