在构造的字符串上使用 execvp 的问题

2023-12-01

我正在尝试编写一个 shell,其构造的一部分是从用户输入的字符串(缓冲区)执行代码。然而,当我尝试使用附加输入(ae.echo a)执行 execvp 字符串时,它总是会搞砸并返回 -1。我不知道为什么。这是相关的部分:

char * buffer = calloc(100, sizeof(char));
...
fgets(buffer, 100, stdin);
buffer[strlen(buffer) - 1] = 0; // necessary because of a newline inserted by fgets
...
cmd = strsep(&buffer, " ");
char * str = malloc(50 * sizeof(char));
strcat(str, "./");
strcat(str, cmd);
strcat(str, ".out");
...
i = execvp(str, (char * *) buffer);

论据buffer是错的。第二个参数execvp是一个指针数组。通过此转换,您可以隐藏编译器警告,但它不起作用。

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

在构造的字符串上使用 execvp 的问题 的相关文章

随机推荐

  • Android:即时应用程序仅显示白屏

    我试图制作一个基本的 Hello world 即时应用程序 为此我正在关注https developer android com topic instant apps getting started first instant app ht
  • 适用于 Android 的蓝牙和 WIFI 打印

    我们需要一台便携式打印机 手持式 这一点很重要 可以通过蓝牙或wifi连接到Android手机 目前我所知道的 这次没有适用于Android的标准打印SDK 有一个非官方的SDK叫iPrint SDK 你们有人尝试过通过wifi或蓝牙吗 有
  • 带有 Chrome Native Messaging 的 C# 本机主机

    今天我花了几个小时研究如何让 Chrome 原生消息传递与 C 原生主机配合使用 从概念上讲 它非常简单 但是在这些其他问题的帮助 部分 下 我解决了一些障碍 Chrome 原生消息传递 从 Chrome 扩展程序到用 C 编写的本机主机的
  • tomcat 中的自定义会话管理器

    在哪里可以找到有关为 Tomcat 创建自定义会话管理器的文档 例如 如何在 tomcats server xml 中配置会话管理器 必须实现什么接口才能使用我的会话管理器 Q 如何在 tomcats server xml 中配置会话管理器
  • 如何使用 f:ajax event=change 将当前迭代的项目发送到 h:selectBooleanCheckbox

    我有以下表格
  • 使用 C# 在 Visual Studio 中的 3 个 Windows 窗体之间传递数据

    我有一个 Windows 应用程序 有 3 个表单 Form1 2 3 我想发送文本框的文本form2 to form1然后同样的文字来自form1 to form3 那是 文本来自FORM2 gt FORM1 gt FORM3 表单1 有
  • 通过使用文件重定向为其提供输入来运行 Java 程序

    我正在尝试使用文件重定向来运行 Java 程序 我正在用这个简单的程序测试它 package netbeans sanbdox public class Sanbdox public static void main String args
  • 如何禁用Seaborn中hue的嵌套?

    使用时hueSeaborn 中条形图上的参数会更改条形的颜色和位置 就像下面的例子 没有色调的绘图 import seaborn as sns df x 1 2 3 4 y 5 6 7 8 hue a b b a sns barplot d
  • H2 控制台访问 h2 以外的数据库

    H2 控制台 http localhost 8082 login jsp 可以选择查看任何数据库的详细信息 如果我们要与 mysql 或其他数据库服务器通信 我们应该将 jdbc 驱动程序复制到哪里 将 jdbc 驱动程序文件 mysql
  • 在 SharePoint 2010 中编辑 SQL 扩展属性

    如何在 SharePoint 2010 中编辑表的扩展属性 到目前为止 我认为没有任何 开箱即用 的东西可以做到这一点 因此 我假设这意味着我必须创建一个自定义 Web 部件来提取表的扩展属性 然后允许我对其进行编辑 然后在编辑完成后 We
  • 设备实例 ID 的驱动器盘符

    如何从驱动器号获取设备实例 ID 我的流程从设备到达消息开始 我已成功从到达消息中获取驱动器盘符并打开 DVD 托盘 我搜索了各种Setup API项 但我还没有找到任何可以让我从驱动器号到设备实例 ID 的信息 C 或 VB NET 中的
  • 如何将查询结果分解为单独的列?

    接续我之前的问题 要作为列插入表中的栅格记录的像素值 想象一下我的查询结果有 5300 行 结果如下 value 15624 15899 56267 85955 我希望它们位于表格中 前 53 行位于val1列 第二 53 行val2专栏等
  • BigQuery - 对数组进行分组

    我想对数组进行分组 示例查询 standardSQL WITH project dataset table AS SELECT compute description key application value scaled server
  • Firebase runloop (3.0.0) 中未捕获的异常。请向 [email protected] 举报 [已关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的离线功能有问题 我使用 firebase 在我的项目中打开离线功能 一切都很好 直到我完全关闭应用程序并重新打开它 它造成了崩溃 这是日志 05 23 07 44 58 407 7
  • JUCE 和 React Native - 链接器错误“ld:未找到 -lReact 的库”

    我在使用 CocoaPods 和 React Native 时遇到此链接器错误 ld library not found for lReact 我已按照指南进行操作https facebook github io react native
  • 在flaskext.mysql中寻找dictcursor的等价物

    我编写了一个Python Flask应用程序 最初使用MySQLdb来访问MySQL 后来我出于同样的目的切换到flaskext mysql 但现在当我使用这个模块时 我看不到如何获取字典结构的游标 当我使用 MySQLdb 模块时 我使用
  • WTForms-JSON 不适用于 FormFields

    当我使用 WTForms JSON 时 嵌套表单 FormFields 不会填充数据 我无法发现我的错误 请参阅下面的示例 from flask import Flask request jsonify from flask wtf imp
  • 管理两个 UI 的最佳方法是什么?

    我创建了两个用户界面 如何关闭第一个并激活下一个 Google Apps 脚本下是否可以有两个 UI 我尝试过类似的事情 var app UiApp getActiveApplication app add app loadComponen
  • Matlab:字符串数组中的数字数组索引(无循环)

    我正在做 MIT OCW MATLAB 入门课程中的一系列问题 你可以看到here 这是问题 9 第 g iii 部分 我有一个矩阵 其中包含一门课程的最终成绩 所有成绩的范围都从 1 到 5 我还有另一个数组 其中仅包含字母 F to A
  • 在构造的字符串上使用 execvp 的问题

    我正在尝试编写一个 shell 其构造的一部分是从用户输入的字符串 缓冲区 执行代码 然而 当我尝试使用附加输入 ae echo a 执行 execvp 字符串时 它总是会搞砸并返回 1 我不知道为什么 这是相关的部分 char buffe