sbrk/brk函数用法
头文件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函数用法相关推荐
- linux brk函数,Linux sbrk/brk函数使用整理
sbrk/brk: brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只 ...
- sbrk brk sys_brk 函数区分
1. brk:是系统调用接口: 内核的syscall_table.s 中定义: ENTRY_SAME(brk) 例如: 在malloc函数实现中有调用brk malloc 函数调用链中: ma ...
- brk函数 linux,brk和sbrk及内存分配函数相关-linux+内存
brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空 ...
- 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法
目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...
- linux中awk下 gsub函数用法
gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- 详细记录python的range()函数用法
详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...
- python Pool常用函数用法总结
在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...
最新文章
- python采集第一步
- 为什么说 Python 内置函数并不是万能的?
- 数据量大mysql当月_mysql 1.5倍数据量导致20多倍的执行时间?
- 创建cordova项目
- 路由重定向|| 嵌套路由用法
- SpringMVC的表单标签库
- 【类】变量复用,函数复用
- java集合概念_JAVA集合概念
- java keygenerator_Java密码学KeyGenerator类
- PyCharm 配置 Git 教程
- 12.1-12.5 LNMP架构介绍 , MySQL安装 , PHP安装, Nginx介绍
- Python 高等数学问题的符号解
- 神仙文献管理软件Mendeley 保姆级教程
- 电子类经典书籍汇总(转 )
- 使用微软官方的Winpe系统安装操作系统(包括下载Winpe、制作U盘启动工具、安装操作系统)
- PHP 生成 ppt,php在线编辑器fckedìtor应用.ppt
- python 操作ps脚本_脚本之王python完美实现换脸技术,毫无PS痕迹!
- 详解package.json文件
- sketch插件 android,设计师必备的SKetch插件合集
- Python 脚本帮你找出微信上删除了你的“好友“