版權所有 © 2014 tutorialspoint
brk, sbrk - 更改資料段大小
#include <unistd.h> int brk(void *end_data_segment); void *sbrk(intptr_t increment);
brk() 將資料段的末尾設定為 end_data_segment 指定的值,當該值合理時,系統確實有足夠的記憶體,並且程序不會超過其最大資料大小(參見 setrlimit(2))。
sbrk() 將程式的資料空間增加 increment 位元組。sbrk() 不是系統呼叫,它只是一個 C 庫包裝器。使用增量為 0 呼叫 sbrk() 可以用來查詢程式中斷的當前位置。
成功時,brk() 返回零,sbrk() 返回指向新區域起始位置的指標。發生錯誤時,返回 -1,並將 errno 設定為 ENOMEM。
brk() 和 sbrk() 在 C 標準中未定義,並且故意從 POSIX.1 標準中排除(參見第 B.1.1.1.3 和 B.8.3.3 段)。
各種系統對 sbrk() 的引數使用各種型別。常見的有 int、ssize_t、ptrdiff_t、intptr_t。
execve (2)
getrlimit (2)
廣告