brk()
brk()调整数据段的end位置
#define_GNU_SOURCE
#include<unistd.h>
int brk(viod * end_data_segment);
参数
end_data_segment:将数据段的end置于end_data_segment处
返回值
成功,返回0
失败,-1,返回ENOMEM。
sbrk()
sbrk()是一个c语言封装库函数,不是system call,作用通过调整process break的位置,调整bss段?heap的大小
#define_GNU_SOURCE
#include<unistd.h>
void * sbrk(intptr_t increment);
参数
注意:不同的系统,所印参数类型不同,类似于int,ssize_t,ptrdiff_t,intptr_t
increment:增加bss段increment字节;若==0,返回program break当前位置
返回值
成功,返回一个指向新虚拟内存区域的指针。
失败,-1,返回ENOMEM。