问题标签 [execvp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2482 浏览

c++ - C++、Linux、fork、execvp、waitpid 和 SIGTSP

我正在为家庭工作实施终端。
我几乎完成了,我只需要实现一个 bg ( Background ) 和一个 fg ( Foreground ) 命令。
我的代码如下所示:

如果它是前台进程(如果最后没有“&”符号),那么我需要能够使用 ctrl+z(SIGTSTP)停止前台进程(子进程),然后将控制权返回给父亲(我的终端)从它停止的点(waitpid)开始。

问题是在按下 ctrl+z 之后(并且在父级在信号句柄方法中获得控制并使用 kill(child_pid, SIGTSTP) 停止子级之后)父级不会从它停止的位置继续(waitpid )。我不知道信号处理方法完成后它继续在哪里。

如果我在信号处理方法中调用 run() 它将起作用,但我不想要递归。我猜我很快就会得到一个 StackOverFlow ......

这是信号处理方法的代码:

编辑:我不知道这是否重要,但我使用的是 Linux Ubuntu 12.10。尽管如此,对于家庭作业,我需要它在其他系统上工作。

谢谢!

0 投票
1 回答
1171 浏览

c - 如何在 fork() 中获取 execvp 错误?

我有以下代码。

我的问题在代码中

0 投票
1 回答
1366 浏览

c - 尝试使用 execvp 在 C 中执行外部命令(在类似 shell 的程序中)

所以我必须实现对执行外部命令的支持(对于 C 编程语言中的 linux)。这就是我到目前为止所拥有的,我将 readline 库用于历史功能,但这无关紧要......有人可以告诉我我做错了什么吗?(我认为这是我称之为“execvp”的方式)所以这是我的代码:

0 投票
1 回答
271 浏览

java - C++调用java jar

我想使用 execvp 调用 java 来执行一个函数,如下面的代码:

但发生错误:

谁能帮我解决这个问题?非常感谢 :)

0 投票
3 回答
7485 浏览

c - execvp/fork——如何捕捉不成功的执行?

现在我正在编写一个必须执行子进程的 C 程序。我不会同时执行多个子进程或任何事情,所以这相当简单。我肯定成功地执行了内置的 shell 程序(即 cat 和 echo 之类的东西),但我还需要能够判断这些程序之一何时无法成功执行。我正在尝试使用以下简化代码:

例如,如果我尝试执行 rm fileThatDoesntExist.txt,我想认为这是一个失败,因为该文件不存在。我怎样才能做到这一点?此外,虽然该 execvp() 调用成功执行了内置的 shell 程序,但它不会执行可执行文件当前目录中的程序(即运行此代码的程序);为了让它在当前目录中运行程序,我还需要做些什么吗?

谢谢!

0 投票
1 回答
9466 浏览

c - fork/exec/waitpid 问题

我试图通过检查 waitpid() 的结果来确定执行是否失败。但是,即使我运行一个我知道失败的命令并将问题写入 stderr,下面的检查也不会注册。这段代码可能有什么问题?

谢谢你的帮助。

0 投票
3 回答
382 浏览

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

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

0 投票
2 回答
40087 浏览

c - 经典 C. 在 execvp 函数、标准输入和标准输出重定向中使用管道

我想使用管道和 execvp 函数在我的 Linux C 程序中模拟 bash。例如

有我的程序:

此代码实际上运行,但没有做正确的事情。这段代码有什么问题?这不起作用,我不知道为什么。

0 投票
3 回答
33059 浏览

c - C - 使用 Execvp 执行 Bash 命令

我想编写一个程序 Shellcode.c,它接受输入一个文本文件,其中包含由换行符分隔的 bash 命令,并执行文本文件中的每个命令:例如,文本文件将包含:

我试过这个(只是为了开始练习其中一个 exec 函数):

我得到,作为回报,

我被 execvp 函数卡住了,我哪里出错了?

0 投票
1 回答
940 浏览

c - 为 execvp() 添加目录到 PATH

我正在用 C 编写一个类似控制台的小型程序,以及 ls、tac 和 dir 的实现。

我使用 execvp() 函数来覆盖进程的分叉子进程,但是当用户插入上述 3 个命令之一时,我必须执行我自己的版本,而不是系统中的那个。

我知道 execvp() 使用系统 PATH 变量在不同位置搜索可执行文件。我可以在我的程序中以某种方式编辑 PATH,这样我就可以添加一个自定义目录作为 execvp() 搜索的第一个位置吗?

谢谢!