头文件unistd.h

sbrk/brk函数重新指定数据段的结束位置,sbrk(0)获得当前数据段结束地址

sbrk(增量),增量可正,可负,可为0,都返回原来数据段的结束地址。失败返回-1

brk(地址),返回0或-1.

通过重新指定数据段新的结束位置,操作系统会以页为单位映射到物理内存或解除物理内存的映射。

具体用法看下面例子

#include <stdio.h>
#include <unistd.h>int main()
{printf("page info size is %d\n", getpagesize());//获取页的大小int *p = sbrk(0); //获取当前数据段地址printf("end address is %p\n", p);brk(p+8); //数据段结束位置后移8*4个字节,实际映射了一页,即4096字节int i =0;for(; i < 18; i++) //数据越界不会出现段错误,因为是以页为单位4096个字节映射的{printf("%d ", p[i]);  }printf("\n");sbrk(4070); //数据段结束位置再后移4070个字节,(p = 32+ 4070 = 5002)此时内存映射了两页p[1024] = 100;printf("%d \n ", p[1024]);sbrk(-6);//数据段结束位置前移6个字节,即p向后移了4096字节,此时解除映射第二页printf("%d ", p[1024]); //此时出现段错误,因为 p[1024]超出第一页了。
}

sbrk/brk函数用法相关推荐

  1. linux brk函数,Linux sbrk/brk函数使用整理

    sbrk/brk: brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只 ...

  2. sbrk brk sys_brk 函数区分

    1. brk:是系统调用接口: 内核的syscall_table.s 中定义:     ENTRY_SAME(brk) 例如: 在malloc函数实现中有调用brk malloc 函数调用链中: ma ...

  3. brk函数 linux,brk和sbrk及内存分配函数相关-linux+内存

    brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空 ...

  4. 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法

    目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...

  5. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

  6. linux中awk下 gsub函数用法

    gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...

  7. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  8. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  9. python Pool常用函数用法总结

    在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...

最新文章

  1. python采集第一步
  2. 为什么说 Python 内置函数并不是万能的?
  3. 数据量大mysql当月_mysql 1.5倍数据量导致20多倍的执行时间?
  4. 创建cordova项目
  5. 路由重定向|| 嵌套路由用法
  6. SpringMVC的表单标签库
  7. 【类】变量复用,函数复用
  8. java集合概念_JAVA集合概念
  9. java keygenerator_Java密码学KeyGenerator类
  10. PyCharm 配置 Git 教程
  11. 12.1-12.5 LNMP架构介绍 , MySQL安装 , PHP安装, Nginx介绍
  12. Python 高等数学问题的符号解
  13. 神仙文献管理软件Mendeley 保姆级教程
  14. 电子类经典书籍汇总(转 )
  15. 使用微软官方的Winpe系统安装操作系统(包括下载Winpe、制作U盘启动工具、安装操作系统)
  16. PHP 生成 ppt,php在线编辑器fckedìtor应用.ppt
  17. python 操作ps脚本_脚本之王python完美实现换脸技术,毫无PS痕迹!
  18. 详解package.json文件
  19. sketch插件 android,设计师必备的SKetch插件合集
  20. Python 脚本帮你找出微信上删除了你的“好友“

热门文章

  1. 8.1 幽灵(no.21-no.30)
  2. 智能制造数字化工厂的关键技术特点
  3. Adobe国际认证-数字素养使青年能够在世界创造变革,并获得成功
  4. 被批准的司法拍卖平台有哪些?
  5. OSChina 周五乱弹 —— 又到周五,我想静静
  6. 【Linux】Linux 指令练习题 (一)
  7. 明天是程序员节,程序员的过节姿势大全抢先看
  8. 东方博宜OJ——1.整数运算题解
  9. 距离感应器下的休眠唤醒机制实现
  10. 前端 html button标签