如何分配具有执行权限的内存?

2023-11-27

我想分配一块具有执行权限的内存。 所以我使用 mprotect 来更改权限。为了获得页面对齐的内存,我使用valloc功能。

void * temp = (void *) valloc(x);

and then

if( mprotect(temp, BLOCK_SIZE, (PROT_READ | PROT_WRITE |PROT_EXEC))) {
   exit(-1);
}

现在我想向这个分配的块添加更多内存。因此我使用realloc功能。

void * new_temp = (void *) realloc(temp, 1024);

这会自动将分配的内存的权限更改为我之前设置的权限吗?以防万一realloc将整个块移动到不同的位置,之前分配的内存和新分配的内存的权限是什么?

Should mprotect再次使用获得执行权限的内存。是否有 API 可以realloc在页面大小边界上,例如valloc. ?


尝试用另一个区域分配一个新区域valloc,并复制旧内容。更好的是,停止使用已弃用的valloc,并将其替换为posix_memalign打电话,或者直接mmap对于非常大的分配。使用mremap你可以有效地realloc页对齐的内存区域。

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

如何分配具有执行权限的内存? 的相关文章

  • boost::asio + std::future - 关闭套接字后访问冲突

    我正在编写一个简单的 TCP 客户端来发送和接收单行文本 异步操作由 std future 处理 以便于超时阻塞查询 不幸的是 我的测试应用程序在破坏服务器对象时因访问冲突而崩溃 这是我的代码 TCP客户端 hpp ifndef TCPCL
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 私有模板函数

    我有一堂课 C h class C private template
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 如何在 Cordova Android 应用程序中嵌入 Youtube 视频

    我是 Cordova 应用程序开发的新手 我有一个 Youtube URL 我想将视频嵌入到 Cordova 应用程序中 我尝试过使用 YouTube Api JS 库 和 iframe 来制作它 我需要做什么才能在 Android 应用程
  • Chrome iFrame 阻止 HTTPS 重定向

    我有一个父网站 https a company com 其中包含一个带有 HTTPS 内容的 iframe https b company com foo 到目前为止一切都很顺利 但是 当发生重定向以在同一域上加载不同的路由时 Chrome
  • 如何使用 OpenGL 3.x VBO 渲染动态世界?

    尽管 OpenGL 3 x 本身的最新参考文献似乎很少 但 OpenGL 的实际低级操作相对简单 然而 我在试图概念化如何操纵 VBO 来渲染动态世界时遇到了严重的困难 显然旧的立即模式方式不适用 但是从那里我该去哪里呢 我是否编写某种场景
  • 单例模式的替代方案?

    我使用 ASP NET 和 C 担任 Web 开发人员已经有一段时间了 我想尝试通过使用最佳实践来提高我的技能 我有一个网站 我想一次性加载设置 然后在需要的地方引用它 所以我做了一些研究 50 的开发人员似乎正在使用单例模式来做到这一点
  • 如何通过用户的XAML动态添加控件到UserControl?

    我想创建一个包含 TextBlock 和 StackPanel 的用户控件 该控件将允许用户在 XAML 中动态地将他 她自己的控件添加到用户控件 以下是我的 UserControl 的示例 XAML
  • 如何从进程 ID 获取 X11 窗口?

    在 Linux 下 我的 C 应用程序使用 fork 和 execv 来启动 OpenOffice 的多个实例 以便查看一些 powerpoint 幻灯片 这部分有效 接下来 我希望能够将 OpenOffice 窗口移动到显示屏上的特定位置
  • 使用 NumPy datetime64 进行矢量化年/月/日运算

    我想从年 月和日的一维向量创建 NumPy datetime64 对象的向量 并且还可以反向操作 即从每日 datetime64 向量中提取年 月或日的向量 我正在使用 NumPy 1 7 0b2 例如 假设 years 1990 1992
  • 使用 RxJava 和 Retrofit 链接两个 Web 服务调用

    我正在使用 RxJava 和 Retrofit 我的基本要求是 我想链接两个 api 调用 这将被一个接一个地调用 从第一个 api 收到的响应在调用第二个 api 时用作输入 在阅读了互联网上的一些内容后 我用平面图来实现这一点 在执行此
  • Rails - 连接后 Distinct ON

    我正在使用 Rails 4 2 和 PostgreSQL 我有一个Product模型和一个Purchase模型与Product has many Purchases 我想找到最近购买的独特产品 最初我尝试过 Product joins pu
  • Google Apps 脚本 - 获取用户电子邮件地址

    我有一个在 Google 网站上运行的 Google Apps 脚本项目 该网站要求用户登录 并且仅向该 G suite 域中的用户开放 我拥有的脚本用于允许用户进行投票 进入发言者队列以及执行一些其他任务 目前 后台的所有功能都可以作为我
  • 解释 Scala 类型级编程中使用的“LowPriorityImplicits”模式

    当查看一些 Scala 库的源代码时 例如无形的 我经常发现名为LowPriorityImplicits 您能解释一下这个模式吗 解决的问题是什么 该模式是如何解决的 该模式允许您拥有隐式层次结构 避免编译器产生与歧义相关的错误 并提供一种
  • Log4Net 不写入数据库

    我已经检查了连接字符串 我从服务器资源管理器获取它 我检查了 log4net 配置中的 commandText 我已经检查了数据库权限 集成安全性很好并且在 log4net 类之外工作 我已经检查了存储库的配置属性 它已配置 它发现配置文件
  • 如何以编程方式比较 mp3

    我喜欢能够以编程方式比较 mp3 问题我不知道是什么 标头 直方图 渠道 有人有这方面的经验吗 I wrote 我的硕士论文关于音频指纹识别 本文列出了一些针对比较音乐听起来的问题的开源解决方案 并提供了它们之间的性能比较 可能有点矫枉过正
  • 如何更改 Fabric.js 对象的值?

    我有一个 Fabric jscanvas 我还有一个 JavaScript 它有一个在按下按钮时调用的函数 我知道如何获取活动对象 canvas getActiveObject 但我不知道如何更改其中的值 而不必进行克隆并删除原始值 我之所
  • ios 中联系人缺少一些必需的关键描述符

    我已使用以下方法检索所有联系人 void getAllContacts void NSArray array handler CNAuthorizationStatus status CNContactStore authorization
  • QueryDSL 左连接,ON 中带有附加条件

    是否可以在 QueryDSL 中执行以下查询 SELECT p FROM parts table p LEFT JOIN inventory balance table i ON p part no i part no AND i mont
  • 如何在设备的前台应用程序中显示双高绿色状态栏(通话中)?

    这里有很多问题要求在后台显示红色录音栏 很明显我应该使用AVAudioSession类别AVAudioSessionCategoryPlayAndRecord为了那个原因 我的问题是 当我的应用程序中有活动的 VOIP 通话时 如何在前台应
  • 从另一个线程和类更新 C# GUI 中的进度条 [重复]

    这个问题在这里已经有答案了 可能的重复 从另一个线程更新进度条 在我的程序中 我想将非GUI功能分离到另一个类中 并将与GUI相关的东西留在主类中 但是 当工作类中的工作方法之一正在执行其工作时 我在更新进度条时遇到问题 我知道我必须在这里
  • “git Push origin MyBranchName”抛出错误“HTTP Basic:访问被拒绝”

    我是 Git 新手 两天前才开始 我正在尝试创建一个项目来练习我从中学到的基本命令here 到目前为止我在哪里 成功 创建一个新的公共git项目 因为我之前尝试过私有和内部但无法克隆它 我不知道为什么 这里是 Added a README
  • 如何分配具有执行权限的内存?

    我想分配一块具有执行权限的内存 所以我使用 mprotect 来更改权限 为了获得页面对齐的内存 我使用valloc功能 void temp void valloc x and then if mprotect temp BLOCK SIZ