腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
2
回答
作为
汇编
中
的
syscall
的
Linux
sbrk
()
、
、
、
因此,为了提高性能,我用
汇编
语言编写了一个简单
的
服务器。据我所知,唯一
的
方法是通过
系统
调用
。(通过int 0x80)显然,我将需要比在
汇编
或加载时分配
的
内存更多
的
内存,所以我仔细阅读并决定使用
sbrk
(),主要是因为我不理解mmap() :p 无论如何,
Linux
不为
sbrk
()提供中断,只为或者我应该找一些其他
的
方法来实现
sbrk
()?
浏览 0
提问于2012-04-26
得票数 5
回答已采纳
1
回答
关于assy和heap
的
一些新问题
、
如果我从
汇编
代码
中
调用
Linux
sbrk
(),我可以像使用静态(即在程序清单
的
.data部分)声明
的
内存块
的
地址一样使用返回
的
地址吗?我知道
Linux
使用硬件MMU,所以我不确定
sbrk
返回
的
是指向真实RAM
的
“原始”指针,还是指向RAM
的
熟知指针,可能会被
Linux
的
VM
系统
修改? 我读到
浏览 2
提问于2011-01-09
得票数 2
回答已采纳
1
回答
在malloc.c
中
如何/在何处使用
sbrk
?
、
、
、
、
我在《高级Unix编程》( Advanced Unix Programming )一书(以及其他一些书)
中
读到过,
Linux
malloc()使用
Linux
系统
调用
sbrk
()向操作
系统
请求内存。我正在查看glibc malloc.c代码,我可以在注释中看到很多提到
sbrk
()
的
地方,但在代码
中
并没有直接提到。 当malloc()向操作
系统
请求内存时,如何/在何处引用/使用<em
浏览 2
提问于2014-01-01
得票数 6
2
回答
C库如何
调用
内核
系统
调用
、
、
、
、
我知道在类Unix
系统
中
,像glibc这样
的
c库充当内核和用户之间
的
中介。那么,例如,在实现malloc()时,glibc如何
调用
linux
内核
的
系统
调用
,它是否使用
汇编
?
浏览 1
提问于2015-10-09
得票数 2
2
回答
unix
中
的
sbrk
系统
调用
、
、
、
我学习就像malloc使用
sbrk
系统
调用
。但是,有人说,垃圾是不推荐
的
。现在有一天,malloc使用mmap2
系统
调用
分配内存。那么,是否有使用
sbrk
系统
调用
的
命令(ls、cat、grep、sed)。同样
的
,任何使用
sbrk
系统
调用
的
命令,有什么内容吗? 提前谢谢。
浏览 3
提问于2015-07-07
得票数 0
回答已采纳
1
回答
可用于
Linux
中
汇编
程序
的
内存
、
、
为了好玩,我只是想在一台装有x86处理器
的
笔记本电脑上为
Linux
编写一个
汇编
程序,以获取一些
系统
信息。所以我要找
的
事情之一是我
的
程序有多少内存可用,例如堆栈在哪里,如果需要的话,我可以如何分配额外
的
内存。很久以前,我在Atari ST上做了这样
的
事情,只有一个
系统
'malloc‘,我可以向它请求内存,并且有一些函数可以找到可用
的
内存。我知道
Linux
的
设置是不同
浏览 1
提问于2020-04-13
得票数 2
1
回答
brk和
sbrk
程序是否突破到最近
的
页面边界?
、
、
我
的
问题是,正如蒂尔特所说,是根据我
的
课本。 int (Void);brk()
系统
调用
将程序中断设置为end_data_segment指定
的
位置。因为在
Linux
上,
sbrk
()是
作为
一个使用brk()
系统
调用
的
库函数实现
的
,所以我预计这两个函数都会将程序中断到下一个页面边界。但是,当我在x86_64
Linux
机器(Ubuntu)上进行测试时,结果发现这两个函
浏览 3
提问于2020-12-24
得票数 0
回答已采纳
1
回答
如何处理程序集中(x64/
Linux
)
中
的
动态分配内存?
、
、
、
、
是否有关于如何使用程序集(最好是x64/
Linux
)动态分配、使用和释放内存
的
好
的
、全面的指南/教程/书籍?我发现了一些提到brk、
sbrk
和mmap
的
技巧,但是我不知道如何使用它们,我觉得不仅仅是检查这些
系统
的
参数和返回值。他们到底是怎么工作
的
? 例如,在
中
,有人提到
sbrk
移动数据段
的
边框。我能知道最初/
调用
sbrk
之后
浏览 1
提问于2020-05-19
得票数 0
3
回答
在
Linux
上跟踪libc和
系统
调用
函数
调用
?
、
、
、
我在
Linux
上有一个C++应用程序。在整个程序执行过程
中
,如何查看对malloc()等函数
的
库
调用
,以及对
sbrk
()等
系统
调用
的
库
调用
?我希望它能显示发生了哪些libc函数,并负责随后
的
Linux
系统
调用
。 注:我不希望截取任何函数
调用
,只想记录哪些C库函数
调用
了哪些
系统
调用
。
浏览 11
提问于2014-07-28
得票数 4
2
回答
分配适当
的
内存大小
、
、
、
在程序中分配适当大小
的
内存时,我遇到了问题。我所做
的
工作如下:当我这样做时,我认为它给堆添加了太多
的
内存,因为它是以void*而不是字节
的
单位分配内存
的
如果size of (无符号int)是4个字节,但是我使用
的
类型是void *,那么编译器会不会破坏一个void *大小
的
4倍而不是4个字节呢?
浏览 6
提问于2012-02-13
得票数 0
回答已采纳
2
回答
在Unix中使用
sbrk
系统
调用
、
、
、
sbrk
系统
调用
在Unix
中
的
用途是什么?在C
中
如何使用?大多数人说,malloc使用
sbrk
系统
调用
来分配内存。那么,
sbrk
系统
如何
调用
分配内存呢?
sbrk
的
参数和返回类型是什么?
浏览 3
提问于2015-06-30
得票数 0
1
回答
在Solaris/
Linux
中
释放分配
的
内存
、
、
、
我已经编写了一个小程序,并在Solaris/
Linux
平台上编译它,以测量将此代码应用于我
的
应用程序
的
性能。 程序就是这样写
的
,一开始用
的
是
sbrk
(0)
系统
调用
,我取了堆区域
的
基址。之后,我使用malloc
系统
调用
分配了1.5 GB
的
内存,然后使用memcpy
系统
调用
将1.5 GB
的
内容复制到分配
的
浏览 0
提问于2010-06-01
得票数 4
回答已采纳
2
回答
现代操作
系统
中
的
内存分段
、
、
在学习操作
系统
(主要是以
Linux
作为
参考)时,我发现有几点在我所研究
的
材料中没有得到很好
的
解释。加载到内存
中
的
程序经常被描述为被分成文本、数据、堆栈等段,即使在
Linux
这样
的
操作
系统
中
,虚拟内存纯粹基于分页。是不是仅仅是程序,而不是内存本身被称为分段?如果是这样的话,我觉得这个术语令人困惑。我看到可以在
Linux
中使用'
sbrk
‘
调用</em
浏览 1
提问于2012-02-27
得票数 8
回答已采纳
2
回答
虚拟内存和
sbrk
、
在32位
Linux
系统
上,一个进程最多可以访问4 GB
的
虚拟地址空间;但是,进程似乎在不同程度上保守地保留了这些空间。因此,使用malloc
的
程序偶尔会通过syscall
sbrk
/brk来增加其数据段。即使是那些页面也还没有在物理内存
中
声明。我不完全理解
的
是为什么我们首先需要
sbrk
,为什么不给我4 GB
的
地址空间来避免任何
sbrk
调用
,因为在我们接触/声明这些块之前,它本质上
浏览 0
提问于2012-04-25
得票数 5
回答已采纳
2
回答
brk和
sbrk
的
区别
、
我是个新手,有人能用一个简单
的
例子说出brk和
sbrk
之间的确切区别吗?是否有效率因素可供选择?malloc和new在内部
调用
brk或
sbrk
。
浏览 1
提问于2016-05-21
得票数 6
4
回答
Linux
中
无dlsym
的
函数插入
、
、
、
我目前正在做一个项目,在这个项目中我需要跟踪几个
系统
调用
和低级函数
的
使用情况,比如mmap、brk、
sbrk
。到目前为止,我一直使用function interposition执行此操作:我编写一个与要替换
的
函数同名
的
包装函数(例如mmap),并通过设置LD_PRELOAD环境变量将其加载到程序
中
。我通过使用dlsym加载
的
指针
调用
真正
的
函数。 不幸
的
是,我想包装
的
函数之一
浏览 2
提问于2009-06-15
得票数 8
回答已采纳
5
回答
在malloc
中
,为什么要使用brk呢?为什么不直接用mmap?
、
、
、
、
malloc
的
典型实现使用brk/
sbrk
作为
从操作
系统
中
获取内存
的
主要方法。但是,他们也使用mmap来获取大量分配
的
块。使用brk而不是mmap有真正
的
好处吗?还是它只是传统?(注意:我在这里交替使用
sbrk
和brk,因为它们是同一个
Linux
系统
调用
brk
的
接口。)
作为
参考,下面是描述glibc malloc
的
几个
浏览 1
提问于2019-04-19
得票数 30
2
回答
到
sbrk
的
最大增量
、
、
sbrk
调用
中
可以使用
的
增量上限是多少?我
的
mmap也有类似的问题。在装有glibc 2.30
的
Arch
Linux
5.4.3-arch1-1 x86-64上测试。 使用gcc 9.2.0编译
的
代码示例。(increment * 2) == (vo
浏览 0
提问于2020-01-03
得票数 1
2
回答
强制free()将malloc内存返回到OS
、
、
、
、
看起来,即使在我为malloc()分配
的
Linux
进程释放了所有内存之后,内存仍然是为进程保留
的
,并且没有返回到操作
系统
。->13.77% (7,655,424B) 0x35FEE82717:__default_morecore (morecore.c:48)->13.77% (7,655,424B) 0x35FEE7F4F1:
浏览 15
提问于2015-01-14
得票数 10
回答已采纳
1
回答
(交叉)在clang上
的
windows上编译64位程序集(来自
linux
)
、
、
、
、
我正在用C和
汇编
语言写一个很小
的
库。我几乎完成了
linux
版本。我是用-static -nostdlib构建
的
,让windows构建
linux
二进制文件很简单。在
linux
上,我使用
汇编
为main获取argc+argv,并通过syscall实现
linux
调用
,这样我就可以执行mmap、打开/写入/读取/关闭等操作。 现在我想为windows编写程序集。据我所知,我不想做
系统
调用<
浏览 19
提问于2021-10-11
得票数 0
点击加载更多
相关
资讯
Linux的系统调用与函数库的关系
Linux作为服务器操作系统的优点和缺点
linux系统中find命令的使用
进程如何使用内存 学习笔记
Linux 系统中 sudo 命令的 10 个技巧
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券