|
|
HP-UX Reference > Bbrk(2)HP-UX 11i Version 2: December 2007 Update |
|
NAMEbrk(), sbrk() — change data segment space allocation DESCRIPTIONbrk() and sbrk() are used to change dynamically the amount of space allocated for the calling process's data segment; see exec(2). The change is made by resetting the process's break value and allocating the appropriate amount of space. The break value is the address of the first location beyond the end of the data segment. The amount of allocated space increases as the break value increases. The newly allocated space is set to zero. brk() sets the break value to endds and changes the allocated space accordingly. sbrk() adds incr bytes to the break value and changes the allocated space accordingly. incr can be negative, in which case the amount of allocated space is decreased. ERRORSbrk() and sbrk() fail without making any change in the allocated space if one or more of the following are true:
WARNINGSThe pointer returned by sbrk() is not necessarily word-aligned. Loading or storing words through this pointer could cause word alignment problems. Be very careful when using either brk or sbrk in conjunction with calls to the malloc(3C) library routines. There is only one program data segment from which all three of these routines allocate and deallocate program data memory. RETURN VALUEUpon successful completion, brk() returns a value of 0. Otherwise, a value of -1 is returned and errno is set to indicate the error. Upon successful completion, sbrk() returns the old break value. Otherwise, SBRK_FAILED is returned and errno is set to indicate the error. The symbol SBRK_FAILED is defined in the header <unistd.h>. No successful return from sbrk() will return the value SBRK_FAILED. |
|