名称
brk, sbrk - 改变数据段大小
内容简介
#includeint brk(void *end_data_segment) void *sbrk(intptr_t increment)
描述
brk() sets the end of the data segment to the value specified by%uA0end_data_segment, when that value is reasonable, the system does have enough memory and the process does not exceed its max data size (see%uA0setrlimit(2)).
sbrk() increments the program’s data space by%uA0increment%uA0bytes.%uA0sbrk() isn’t a system call, it is just a C library wrapper. Calling%uA0sbrk() with an increment of 0 can be used to find the current location of the program break.
返回值
On success,%uA0brk() returns zero, and%uA0sbrk() returns a pointer to the start of the new area. On error, -1 is returned, and%uA0errno%uA0is set to%uA0ENOMEM.
遵循于
4.3BSD SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001.%uA0
brk() and%uA0sbrk() are not defined in the C Standard and are deliberately excluded from the POSIX.1 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
注意
Various systems use various types for the parameter of%uA0sbrk(). Common are%uA0int,%uA0ssize_t,ptrdiff_t,%uA0intptr_t.