Linux中分配特定地址

2024-04-06

我想在Linux进程中的特定地址分配一块内存。 实际上我想做一些类似的事情: 我会有进程号。 每个进程都会调用库(由我编写)中的初始化函数,该函数将在进程的地址空间中分配一些内存(它将存储进程相关信息)。这将由每个进程完成

一旦分配了该内存,程序就会调用库中的其他函数。现在这些函数想要访问第一个函数分配的内存(包含进程相关信息)。

问题是我无法存储库中进程地址空间中分配的内存的地址(甚至不能存储在静态指针中,因为有多个进程),而且我什至不希望用户程序存储该地址。我只是不想让用户程序知道库在其地址空间中分配了内存。库函数对他们来说是抽象的,他们只能使用它们。

有没有可能克服这个问题。 我在想,每当任何进程调用分配内存的库的初始化函数时,内存总是在所有进程中分配在相同的地址(比如 10000),而不管其他所有事情。

因此任何想要访问该内存的库函数都可以轻松地通过以下方式完成:char *p=10000;

然后访问,访问的是调用库函数的进程的地址空间。


不是 100% 我得到了你的目标,但如果你想将内存映射到特定的设置地址,你可以使用 MAP_FIXED 标志到 mmap():

“当在 flags 参数中设置 MAP_FIXED 时,会通知实现 pa 的值应准确地为 addr。如果设置了 MAP_FIXED,则 mmap() 可能会返回 MAP_FAILED 并将 errno 设置为 [EINVAL]。如果 MAP_FIXED 请求成功,由 mmap() 建立的映射将替换 [pa,pa+len) 范围内进程页面的任何先前映射。”

请参阅 mmap 手册页:http://linux.die.net/man/3/mmap http://linux.die.net/man/3/mmap

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux中分配特定地址 的相关文章

  • 如何在 Linux 上调用 Python 中的内联机器代码?

    我正在尝试从 Linux 上的纯 Python 代码调用内联机器代码 为此 我将代码嵌入到字节文字中 code b x55 x89 xe5 x5d xc3 然后打电话mprotect http www kernel org doc man
  • 为什么分配大块内存会失败,而重新分配小块内存却不会失败

    这段代码的结果是x指向一块大小为 100GB 的内存 include
  • 使用 Shell 脚本提供密码

    我已将客户端和服务器设置为无密码登录 就像无密码登录一样 通过将服务器的 RSA 密钥复制到所有客户端的 root ssh id rsa pub 来实现 但这是我手动完成的 我喜欢使用 shell 脚本自动执行此过程 并通过脚本向计算机提供
  • 如何检测文本文件中大于 n 的一系列“空洞”(孔、与模式不匹配的线)?

    Case scenario cat Status txt 1 connected 2 connected 3 connected 4 connected 5 connected 6 connected 7 disconnected 8 di
  • Web 本地应用程序 Apache:运行 shell 脚本

    我开发了一个 shell 脚本 我想用它创建一个 UI 我决定使用带有本地服务器的 Web 界面 因为我对 HTML PHP 的了解很少 比 QT 或 Java 的了解更多 我只是希望我的 html 可以在我的计算机上运行 shell 脚本
  • Linux 源代码中的哪个位置会识别特定的 USB 设备?

    我有一个特定的 USB 设备 我想检查其 Linux 驱动程序源代码 我的理解是 USB 驱动程序执行的第一步是注册自己能够处理具有特定供应商 ID 和产品 ID 的设备 就我而言 供应商 ID 是0BDA产品 ID 是8187 有了这些信
  • bash 别名中允许使用哪些字符[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我最近添加了 alias cd alias cd alias cd 到我的 bash aliases 文件 玩弄这个 我注意到在别名时 被
  • 编译器 libstdc++ 版本与系统版本

    我试图了解 g 如何选择它链接的 libstdc 版本 以及当库的 系统 版本不同时它意味着什么 我正在使用 gcc g 4 1 2 根据ABI 指南 http gcc gnu org onlinedocs libstdc manual a
  • 页面错误陷阱的成本

    我有一个应用程序 它定期 每 1 或 2 秒后 通过分叉自身来获取检查点 因此 检查点是原始进程的一个分支 它一直保持空闲状态 直到原始进程发生某些错误时被要求启动 现在我的问题是fork的写时复制机制的成本有多大 每当原始进程写入内存页面
  • 让“git pull”在拉取不同分支时要求确认

    当同时处理许多项目和分支时 我偶尔会犯一些愚蠢的错误 比如拉入错误的分支 例如在分支上master I did git pull origin dangerous code并且有一段时间没有注意到这一点 这个小错误造成了很大的混乱 当我尝试
  • 在 Linux 2.6.21 (glibc 2.3.5) 上进行 ARP 和反向 ARP

    我需要在任意 IP 网络上存储对第三方设备的持久引用 其中设备的 IP 地址可能是静态的或由 DHCP 随机分配 我不控制网络上的设备 也不能依赖 DNS 和其他现有的或与设备一起使用的临时网络协议 所以我被指示使用硬件地址和 ARP 进行
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • Linux:通过网络进行屏幕桌面视频捕获和 VNC 帧速率

    抱歉 文字墙很长 TL DR VNC 连接的帧速率是多少 以帧 秒为单位 或者更确切地说 由谁决定 客户端还是服务器 对于桌面屏幕捕获的任何其他建议 但 正确的时间编码 具有不抖动的帧速率 具有稳定的周期 并有可能将其作为未压缩 或无损 图
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • 如何使用sprof?

    请举例说明 从邮件中找到here http sources redhat com ml libc alpha 2003 07 msg00029 html and here http sourceware org ml binutils 20
  • 是否有我可以运行的操作系统命令来确定是否在基于 Xen 的虚拟机内运行

    我可以在基于 Xen 的虚拟机中运行一个操作系统命令来告诉我它是一个虚拟机而不是物理机 我听说内核对此有一些自我意识智能 例如就像 ps 输出中的额外列之类的 我知道 vmstat 提供了 st 列 但我在运行 Linux 内核 2 6 1
  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • Snap-confine 具有提升的权限,并且不受限制,但应该受到限制。拒绝继续避免权限升级攻击

    我已经使用 snap 一段时间了 但最近升级后 当我尝试打开任何应用程序时 出现此错误 Snap confine has elevated permissions and is not confined but should be Refu
  • 在单个命令中使用前缀重命名文件夹中的所有文件

    重命名带有前缀的文件夹中的所有文件 Unix 假设一个文件夹有两个文件 a txt b pdf 那么它们都应该从一个命令重命名为 Unix a txt Unix b pdf 如果您的文件名包含没有空格并且你没有任何子目录 你可以使用一个简单
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是

随机推荐

  • 在 C++ 中按值传递临时结构的简单方法?

    假设我想将一个临时对象传递给一个函数 有没有办法用 1 行代码和 2 行代码来使用结构来做到这一点 通过一堂课 我可以做到 class func TestClass 5 7 given class TestClass private int
  • 奇怪的 SimpleXML 问题 - 无法按名称引用节点?

    我正在尝试解析一个有效的远程 XML 文件 xml simplexml load file http feeds feedburner com HammersInTheHeart format xml 根元素是feed 我试图通过以下方式获
  • 底层提供程序在 Open 时失败

    我创建了 3 个 Ajax 进程来同时运行以下代码 但其中一个进程抛出消息所示的异常 底层提供商在 Open 上失败 try orderRepository orderRepo new orderRepository get context
  • 以角度方式将依赖服务注入到父类

    我有课parent and child The child类扩展parent 我需要 Inject注射类service to parent因为所有child正在使用它 我怎样才能做到呢 您可以从父级注入任何服务或类Injector类 你需要
  • Nestjs:即使正文验证失败也会上传图像

    首先 我为我糟糕的英语表示歉意 我有一个接受 PUT 请求的方法 它接收一个文件和 BlogModel 当我从前端提交表单并且 BlogModel 的验证失败时 文件仍然会上传 main ts import NestFactory from
  • 使用 HttpServletRequestWrapper 进行复制后缺少必需的请求正文

    在我的项目中 我有一组 api 调用 应通过某些常见验证集进行过滤 在这种情况下 我必须在请求到达 REST 控制器之前拦截该请求 读取请求正文 进行验证 如果请求通过验证 则将其传递给控制器 自从HttpServletRequest不能多
  • Python 请求库给出错误“远程端关闭连接而无响应”

    我正在请求库的帮助下进行后调用 import time def retry on connection errors url data data consists of dictionary with 20 key value pairs
  • node.js,express,如何从post请求中的body表单数据中获取数据

    我有一个简单的 Node js 应用程序 我想从用户那里获取帖子正文 app js var express require express var app express app use express json app post api
  • 使用 MediaTracker 在 Swing 应用程序中缓存图像

    我有一个基于 Swing 的金融代码 它将显示价格变动的金融符号以及每个柜台 公司向上或向下的箭头 此股票行情指示器上可以有很多计数器 最多 100 个 并查看是否需要缓存图像符号以提高性能 我尝试过遵循这个article http www
  • 绘制 4d 数据

    我有 4 个维度的点 我们称它们为 v w y z 我想将其可视化 我的计划是有两个正方形 v x w y x z 彼此相邻 然后将每个点绘制两次 给定两点 1 1 1 3 2 2 2 2 我设想这样的事情 给定一小组点 我可以使用不同的颜
  • YAGNI 在编写测试时也适用吗?

    当我编写代码时 我只编写我需要的函数 这种方法也适用于编写测试吗 为了安全起见 我应该提前为我能想到的每个用例编写测试 还是应该只为遇到的用例编写测试 我认为当你编写一个方法时 你应该测试预期的和潜在的错误路径 这并不意味着您应该扩展您的设
  • Pheanstalk(beanstalk 的 PHP 客户端)- 连接如何工作?

    我需要一些帮助来理解 pheanstalk php beanstalk 客户端 的使用 我有一个 PHP 程序 当表单数据发送到服务器时 该程序在服务器上执行 然后 PHP 程序应将表单数据打包为 JSON 结构并将其发送到后端服务器进程
  • 如果子级包含类,如何将类添加到父级?

    我试图将一个类添加到父 DIV 如果它有一个类为 testing 的子 IMG 元素
  • RecyclerView 仅在滚动时更新

    我有一个布局RecyclerView使用适配器 public class SimpleRecyclerAdapter extends RecyclerView Adapter
  • 按索引获取 DataGrid 行

    我正在尝试获得DataGridRow从我的DataGrid基于索引 我正在使用以下代码 public DataGridRow GetGridRow int index DataGridRow row DataGridRow DG State
  • Gulpfile.js 加载失败

    Visual Studio 任务运行程序无法加载 gulp 文件 我用VS2017 v15 9 4然而 现在这个项目是几年前开发的 Failed to run Gulpfile js cmd exe c gulp tasks simple
  • 如何为 AVVideoComposition 设置透明背景?

    Update 我为回答这个问题添加了 50 点声誉赏金 我有一个应用程序需要将一些视频和照片放在一起以创建电影 我正在使用 AVMutableComposition 来实现这一点 为了能够指示它如何合成视频 我必须使用 AVMutableV
  • 如何在类中使用静态/辅助方法?

    我正在写一个Fraction类 我正在尝试使用gcd a b 在初始化时Fraction目的 但是 当我尝试这样做时 如果没有Fraction部分Fraction gcd a b 我用了 staticmethod在这里 但它绝对没有任何作用
  • 如何在一个 UITextView (Xcode) 中拥有两种字体?

    我想在一个 UITextView 中制作两种字体样式 我该怎么做 来自类参考 http developer apple com library IOS documentation UIKit Reference UITextView Cla
  • Linux中分配特定地址

    我想在Linux进程中的特定地址分配一块内存 实际上我想做一些类似的事情 我会有进程号 每个进程都会调用库 由我编写 中的初始化函数 该函数将在进程的地址空间中分配一些内存 它将存储进程相关信息 这将由每个进程完成 一旦分配了该内存 程序就