brk() - Unix,Linux系统调用 - 技术教程
Tutorials Point


  Unix初学者指南
  Unix Shell编程
  高级Unix
  Unix有用参考
  Unix有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于TP  

brk() - Unix,Linux系统调用


previous next AddThis Social Bookmark Button

广告

名称

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

符合标准

4.3BSD;SUSv1,在 SUSv2 中标记为 LEGACY,在 POSIX.1-2001 中删除。

brk() 和sbrk() 在 C 标准中未定义,并故意从 POSIX.1 标准中排除(参见段落 B.1.1.1.3 和 B.8.3.3)。

备注

各种系统对sbrk()的参数使用各种类型。常见的类型有intssize_tptrdiff_tintptr_t

参见



previous next Printer Friendly

广告


  

广告



广告
© . All rights reserved.