调用 execv() 时动态分配的内存会发生什么?

2024-01-07

我正在编写一个简单的 shell 作为操作系统课程作业,我需要在 PATH 中搜索以查找用户输入的程序,一旦找到正确的目录,我就会分配一块内存,足以容纳目录名加上程序名称,我将其作为第一个参数传递给 execv()。

我可以静态分配 100 个左右的字符,但有限制让我感到不舒服。那么当execv()执行时,堆是被清理了还是那块内存丢失了?

也许记忆不多,但我只是好奇。


当你exec(),整个进程(a)结束,因此所有资源,包括动态内存和下面的一些fd,都被操作系统回收,并且(b)替换:代码,数据,线程,...

重新文件描述符,来自"man execve":

在调用进程映像中打开的文件描述符在新进程中保持打开状态 进程映像,设置了 close-on-exec 标志的进程映像除外 (参见 close(2) 和 fcntl(2))。保持打开状态的描述符不受影响 通过execve()。

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

调用 execv() 时动态分配的内存会发生什么? 的相关文章

  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 有没有办法只安装mysql客户端(Linux)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有不需要安装整个mysql db安装包的Linux mysql命令行工具 我想做的是从服务器 1 应用程序服务器 执行将在服务器 2
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • SVN 不断提示我输入密码并拒绝缓存我的凭据

    环境 Eclipse Indigo Ubuntu 11 04 Subclipse 1 6 SVN 客户端 Subclipse RabbitVCS 我通过 svn ssh 连接 我的网址如下所示 svn ssh 我的名字 我的域名 路径 我可
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您

随机推荐

  • uilabel 尾部截断

    我正在使用 Objective C 开发一个 ios 应用程序 并且我遇到了 uilabel 的问题 我需要一些帮助 基本上我有一个标签 可以更改大小以适应它将显示的文本 但它有一个可能的最大高度 标签本身始终具有固定宽度 我已打开 UIL
  • 如何将视频从 URI 转换为 byte[]

    我已经捕获了视频并获得了该视频的 URI 如何加载该URI指向的内容到byte 结构 看一下 ByteArrayOutputStream http download oracle com javase 6 docs api java io
  • 3.1.4 textAlignment丢失(Android Studio)

    我有新版本的 Android Studio 3 1 4 但我找不到 textAlignment 我已经在 查看所有属性 中进行了搜索 现在就找人在我能找到的地方吧 谢谢回答 以下是我解决该问题的方法 在 Android Studio 3 3
  • JQuery 自动完成自定义显示多列第 2 部分

    我正在尝试获得类似于以下内容的自动完成功能 Here http jqueryui com demos autocomplete custom data在 jquery ui 的自定义示例中 相反 这将使用 ajax 调用而不是硬编码数据 我
  • 如何在核心数据中保存现有的单例表视图数据?

    我的项目中有这样的单例购物车var fromSharedFood SingletonCart sharedFood food 我正在从 MainVC 到 DetailVC gt MyCartVC 获取所有食物数据 我在 MainVC 中有表
  • 将 React 的不可变助手与 Immutable.js 结合使用

    我正在研究助焊剂应用并正在考虑采用不可变 js https github com facebook immutable js来维持状态 我看到 React 提供了自己的帮助器来更新不可变对象 http facebook github io
  • 如何在 Android Studio 中查找 Kotlin 的最新版本

    我打开了一个前段时间创建的 Android Studio 项目 IDE 说 Kotlin 的 gradle 插件支持 Kotlin 版本 1 2 51 或更高版本 我想将其设置为最新版本 但我必须去 Kotlin 网站 在该网站上不容易找到
  • C++ 声明顺序(在多变量声明行中)

    我在我的 C 代码中使用以下内容 int a 0 b a 我想知道这种行为是否可靠且定义良好 名称声明从左到右的顺序 并且我的代码不会与其他带有未申报的名字 error 如果不可靠 我会打破这个说法 int a 0 int b a 谢谢 我
  • 显示电子邮件地址和联系电话的安全方式

    是否有任何提示可以在联系表单网页上显示联系电话号码和电子邮件 我的页面上有一个联系表格 但也希望人们可以选择直接打电话或发送电子邮件 目前它们以纯文本显示 但感觉这是不安全的 并且对爬行网站以获取此类信息的机器人开放 有安全的方法吗 Tha
  • PHP - 设置带有签名验证的 Webhook 接收器

    我需要设置一个 PHP 页面来接收 Webhook 我过去已经做过很多这样的事情 所以这不是问题 但是我正在为这个项目使用的 API 要求我的 webhook 验证标头中提供的签名 作为验证请求的一部分 它将发送以下内容 HEADER x
  • 如何转储 SoapClient 请求或响应以进行调试?

    我需要调试一些使用的代码SoapClient班级 我发现方法记录如下 getLastRequest 但它只返回null client new SoapClient https example com service wsdl respons
  • Android 依赖项引用不存在的库 google-play-services_lib.jar

    我一直在尝试让一个简单的地图出现在应用程序中 如 Google 地图 v2 文档所示 这让我经历了一段糟糕的时光 Eclipse 不断地说 容器 Android 依赖项 引用不存在的库 X Android Development works
  • UIView alpha 与 UIColor alpha

    我想知道以下之间的区别 为我的 UIView 分配 alpha 值 为其指定不透明颜色 但为 UIView 指定 在屏幕截图上 我制作了两个 UIView 每个视图顶部都有两个黑色 alpha 1 0 UILabels 假设之前定义了一个宏
  • 为什么 gcc 会警告“self = [super initDesignatedInit];”不兼容的结构赋值在派生类中调用?

    我在 Objective C 中有以下基 派生类设置 interface ASCIICodeBase NSObject protected char code 4 Base initWithASCIICode const char code
  • 如何编写单元测试来确定对象是否可以被垃圾收集?

    和 关联我之前的问题 https stackoverflow com questions 578593 castle windsor will my transient component be garbage collected 我需要检
  • 如何在 Bootstrap 4 中创建页眉?

    自从 page header类在 Bootstrap 4 中已被弃用 如何创建与 Bootstrap 3 样式相同的页面标题 page header class 根据迁移文档 https getbootstrap com docs 4 0
  • 查找文件并仅打印其父目录

    我有以下命令 无论在哪里 user log文件存在 我们需要打印父目录 即hht and wee1 如何才能做到这一点 cd nfs office find name user log hht info user log wee1 info
  • 为什么我的 CompareTo 因一般合同违规错误而崩溃? [复制]

    这个问题在这里已经有答案了 我正在尝试整理我的习惯NewsAdapter by a Date的财产Articles Map对象 并且我注意到 在数据集较大的情况下 我的应用程序会崩溃java lang IllegalArgumentExce
  • 业务逻辑:数据库或应用程序层

    老问题了 您应该将业务逻辑放在哪里 作为存储过程 或包 放在数据库中 还是放在应用程序 中间层中 更重要的是 为什么 假设数据库独立性不是目标 在确定业务逻辑应该放在哪里时 代码的可维护性始终是一个大问题 集成的调试工具和更强大的 IDE
  • 调用 execv() 时动态分配的内存会发生什么?

    我正在编写一个简单的 shell 作为操作系统课程作业 我需要在 PATH 中搜索以查找用户输入的程序 一旦找到正确的目录 我就会分配一块内存 足以容纳目录名加上程序名称 我将其作为第一个参数传递给 execv 我可以静态分配 100 个左