*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> sbrk (2)              



NAME    [Toc]    [Back]

       brk, sbrk - Change space allocation

SYNOPSIS    [Toc]    [Back]

       #include <unistd.h>

       int brk(
               void *addr ); void *sbrk(
               intptr_t incr );

       The  following  function prototypes do not conform to current
 standards and are supported only for backward compatibility:

       int brk(
               char *addr ); void *sbrk(
               ssize_t incr ); void *sbrk(
               long incr );

LIBRARY    [Toc]    [Back]

       Standard C Library (libc)

STANDARDS    [Toc]    [Back]

       Interfaces  documented  on  this reference page conform to
       industry standards as follows:

       brk(), sbrk(): XSH4.2

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Points  to  the effective address of the maximum available
       data.  Specifies the number of bytes to be  added  to  the
       current  break. The value of incr may be positive or negative.

DESCRIPTION    [Toc]    [Back]

       The brk() function sets the lowest data  segment  location
       not used by the program (called the break) to addr.

       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 with the execve() function,
 the break is set at the highest location defined  by
       the  program  and data storage areas. Therefore, only programs
 with growing data areas should need to use sbrk().

       The  current  value  of  the  program  break  is  reliably
       returned by the call sbrk(0). The getrlimit() function may
       be used to determine the maximum permissible size  of  the
       data  segment.  It is not possible to set the break beyond
       the value returned from a call to  the  getrlimit()  function.

       If  the  data  segment was locked at the time of the brk()
       function, additional memory allocated to the data  segment
       by brk() will also be locked.

NOTES    [Toc]    [Back]

       Programmers  should be aware that the concept of a current
       break is a historical remnant  of  earlier  UNIX  systems.
       Many  existing UNIX programs were designed using this memory
 model, and these programs typically use the  brk()  or
       sbrk()  functions  to increase or decrease their available

       The use of the mmap() function is now preferred because it
       can  be  used  portably  with  all other memory allocation
       functions and with any function that uses other allocation

RETURN VALUES    [Toc]    [Back]

       Upon  successful  completion, the brk() function returns a
       value of 0 (zero), and the  sbrk()  function  returns  the
       prior  break value. If either call fails, a value of -1 is
       returned and errno is set to indicate the error.

ERRORS    [Toc]    [Back]

       If the brk() or sbrk() function fails, no additional  memory
  is allocated and errno is set to one of the following
       values: [Tru64 UNIX]  Indicates an attempt to set a  break
       value  to  less than the initial value at program startup.
       The  requested  change  would  allocate  more  space  than
       allowed  by the limit as returned by the getrlimit() function.

SEE ALSO    [Toc]    [Back]

       Functions: exec(2), getrlimit(2), mmap(2), plock(2),  malloc(3)

       Standards: standards(5)

[ Back ]
 Similar pages
Name OS Title
brk HP-UX change data segment space allocation
brk IRIX change data segment space allocation
sbrk HP-UX change data segment space allocation
lvreduce HP-UX decrease space allocation or the number of mirror copies of logical volumes
copyin NetBSD kernel space to/from user space copy functions
copyin_proc NetBSD kernel space to/from user space copy functions
copyoutstr NetBSD kernel space to/from user space copy functions
copystr NetBSD kernel space to/from user space copy functions
copyout NetBSD kernel space to/from user space copy functions
copyinstr NetBSD kernel space to/from user space copy functions
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service