如何检查我的包装函数系统调用 - read() 是否正确? [复制]

2024-01-06

可能的重复:
包装函数的内联汇编器由于某种原因不起作用 https://stackoverflow.com/questions/10260178/inline-assembler-for-wrapper-function-doesnt-work-for-some-reason

我被要求编写包装函数read , write , close , open & fork .

我已经编写了 4 个包装函数read , write , close , open .

我的问题是:

  1. 我如何编写包装函数fork,使用我编写的 4 个包装函数read , write , close & open ?

  2. 如何检查我编写的包装器是否正确?这是包装函数的代码read- 叫my_read :

ssize_t my_read(int fd, void *buf, size_t count)   
{    
      ssize_t res;

      __asm__ volatile(
        "int $0x80"        /* make the request to the OS */
        : "=a" (res),       /* return result in eax ("a") */
          "+b" (fd),     /* pass arg1 in ebx ("b") */
          "+c" (buf),     /* pass arg2 in ecx ("c") */
          "+d" (count)      /* pass arg3 in edx ("d") */
        : "a"  (5)          /* passing the system call for read to %eax , with call number 5  */
        : "memory", "cc"); 

      /* The operating system will return a negative value on error;
       * wrappers return -1 on error and set the errno global variable */

      if (-125 <= res && res < 0)
      {
        errno = -res;
        res   = -1;
      }

      return res;
}

Remarks: 我不允许直接使用open ,close ,read , write & fork命令。

如果需要的话,我可以附上其他 3 个包装器的其余代码。上面是包装read.

Regards

Ron


fork应该是系统调用2,所以

    __asm__ volatile ("int $0x80" : "=a" (res) : "0" (2)); 

应该管用。请记住,fork 返回两次,其中res是子进程的 pid(在父进程中)和 0(在子进程中)。

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

如何检查我的包装函数系统调用 - read() 是否正确? [复制] 的相关文章

随机推荐

  • 如何让屏幕暂停? [复制]

    这个问题在这里已经有答案了 可能的重复 如何阻止 C 控制台应用程序立即退出 https stackoverflow com questions 2529617 how to stop c console application from
  • 在 C++ 中使用 OpenCV 2.4 计算凸面缺陷

    我正在使用 OpenCV 2 4 来计算图像的凸包 我还进行了一些处理以消除图像中的一些噪声 这与问题并不真正相关 计算凸包的代码如下 cv Mat sourceImage assume something is already here
  • 如何将HTML文件转换为word? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要将 HTML 文档作为 Word DOC 文件保存在内存中 有人可以给我一些可以用来执行此操作的
  • JFreeChart 中的 LogAxis 上未显示小刻度

    我在用着JFreeChart绘制一些数据并使用LogAxis对于范围轴 我很困惑为什么我似乎无法在轴上显示小刻度 但网格线显示得很好 如果我不使用LogAxis我可以使用以下命令打开和关闭小刻度setMinorTickMarksVisibl
  • 具有拖放功能的示例任务应用程序

    app js App Em Application create App IndexRoute Em Route extend model function return newTasks Em A id 1 name Task 1 id
  • 这是 JavaScript 中的一个简单的去抖动函数吗?

    var debounce function fn delay var timeoutId return function debounced if timeoutId clearTimeout timeoutId timeoutId set
  • CSS 选择最多 N 层的嵌套元素

    我有许多嵌套元素 并且我尝试仅选择前 N 层 下面显示了一个工作示例 其中我选择了前 7 个级别并设置了它们的样式 这正是我想要的 但是 我希望有一种选择这些元素的简化方法 在我的实际用例中 我不知道嵌套元素的总数 并且我试图选择前 50
  • 使用 Rcpp Sugar 将平均值和标准差传递到 dnorm()

    我正在将一些 R 代码转换为 Rcpp 代码 并且需要计算给定均值向量和标准差向量的观察向量的可能性 如果我假设平均值为 0 标准差为 1 我可以编写这个函数 运行这个函数需要加载 inline 和 Rcpp 包 dtest1 cxxfun
  • 与 jMockit 结合的测试覆盖率报告

    我正在使用 jmockit 和 Ant 对于每个测试文件运行 index html文件在覆盖率报告文件夹中创建 覆盖 对于多个测试文件 这index html被覆盖 我正在寻找所有文件的综合报告 应该做什么 我读过有关使用 ser文件 但我
  • 为什么无法将任何字体另存为图像? (但要在我的Windows窗体上显示它)

    我有点困惑 因为我可以在 Windows 窗体上显示每种字体的每个字符串 但作为图像并不总是可能的 也许我的代码有问题 但让我告诉你我正在尝试什么 一开始我有这个 Label l new Label l Text CSharp this F
  • Ruby:在代码中使用 rand() 但编写测试来验证概率

    我有一些代码可以根据加权随机提供东西 权重较大的事物更有可能被随机选择 现在 作为一名优秀的 Ruby 专家 我当然希望通过测试来覆盖所有这些代码 我想测试是否按照正确的概率获取内容 那么我该如何测试呢 为应该是随机的东西创建测试使得很难比
  • 如何在 Windows 服务中显示表单。

    我想在 Windows 服务中的 OnStart 方法中加载表单 这是我的代码 它不起作用 您能提供任何帮助吗 protected override void OnStart string args Form1 fr new Form1 f
  • Firebase FCM,同一 Firebase 项目中的多个应用程序

    我有一个 Firebase 项目 在其中注册了多个应用程序 现在我想添加推送通知 并且我希望能够区分哪个应用程序应该被推送通知唤醒 在 google services json 文件中 我看到所有应用程序都具有相同的值current key
  • 无法更改工具栏的颜色

    谁能解释一下 为什么我的工具栏没有改变它的颜色 即使我创建了另一种样式 例如 将其添加到我的清单文件中 例如
  • 用户评论中的 Markdown(带有适当的清理和 Youtube 视频)

    我坚持决定如何进行 Markdown 处理和 Html 清理 我对评论 文章有这样的用户要求 用户应该能够使用 Markdown 语法 用户应该能够发布 youtube 视频 yandex music 音频 当然 用户不应该被信任 他们的输
  • JavaScript 中的两个字母变量名?

    我正在看一个今天回答一个 SO 问题 其中变量名称是 ua rv 等 https stackoverflow com questions 917252 how to detect if a user is running ie 6 9172
  • 如何更改 iOS 输入的插入符号的默认颜色?

    有什么办法可以改变 iOS 上输入的蓝色插入符号吗 UPDATE 因此 当 iOS 支持时 caret color 属性将解决这个 问题 当您将来访问这里时检查浏览器支持https caniuse com feat css caret co
  • 如何运行Android APK包中的控制台程序?

    APK 是在 RAD Studio C Builder 11 2 中编写的 例如 我尝试了很多方法 但都出现编译错误 代码如下 UnicodeString command test run TFileName fullPath TPath
  • 如何从 Java 集合中弹出项目?

    JDK 或 apache commons 中是否有一种方法可以从 java util List 中 弹出 元素列表 我的意思是 删除元素列表并返回它 就像这个方法一样 public Collection pop Collection ele
  • 如何检查我的包装函数系统调用 - read() 是否正确? [复制]

    这个问题在这里已经有答案了 可能的重复 包装函数的内联汇编器由于某种原因不起作用 https stackoverflow com questions 10260178 inline assembler for wrapper functio