问题标签 [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 回答
1016 浏览

c - 如何在 C 中使用 fork() 和 execvp() 创建多个有序进程?

我正在尝试使用 fork() 和 execvp() 调用创建多个进程,但到目前为止我一直没有成功。这是我正在尝试做的事情:

进程 A、B、C 应该同时运行。当它们完成后,进程 D 应该运行。完成后,进程 E 和 F 应该运行。

我可以通过传递程序名称及其参数来成功调用 execvp(),但我不知道应该调用多少次 fork() 以及在哪里调用。我也知道如何调用 wait(),但我再次不确定应该在哪里调用它。

我该怎么做?

0 投票
1 回答
9482 浏览

node.js - 在 node.js 中生成子进程时出错

我正在尝试启动并运行一些 ffmpeg 转换器服务,到目前为止取得了不错的进展。但是,当涉及到生成实际的 ffmpeg 转换过程时,我遇到了障碍。

执行此代码时,我得到以下控制台输出:

我已经检查了不同的节点版本(0.4.0、0.4.2 和 0.5.0-pre),但没有任何效果。

另一个非常奇怪的行为是我必须调用 spawn 包括一个空格('ffmpeg '而不仅仅是'ffmpeg')。如果我省略这个空格,我会得到一个不同的错误(stderr: "/path/to/my/movie.mpeg": no such file or directory)。当直接从 shell 调用 ffmpeg 时,发送到 child_process.spawn() 的命令执行没有任何问题。

关于那个有任何提示吗?我已经检查了其他实现相同的项目(如node-imagemagickffmpeg-node,但启蒙并没有击中我......

更新: strace() 输出

使用 运行我的应用程序时strace -fF -o strace.log node server.js,我可以 grep 以下进程生成调用:

在看到路径上奇怪地转义的双引号后,我尝试在没有引号的情况下调用 ffmpeg ......就像一个魅力。但问题仍然存在,我需要能够在路径中使用空格。

有什么建议么?

更新:解决方案

让它与空间一起工作,一个简单inputfile.replace(' ', '\ ')的就足够了。

0 投票
1 回答
2200 浏览

c - 在这段代码中我应该在哪里使用wait和waitpid?

我编写了一个模拟 '$ls -l | wc -c ' 类似于使用管道的命令。现在我无法找出在这段代码中应该在哪里使用 wait 或 waitpid。

另外我应该在哪里关闭管道?请查看我的代码并提出建议。

0 投票
2 回答
213 浏览

c - 在 ac 程序中执行带有选项的命令

我正在尝试在 ac 程序中使用参数执行命令。例如,当用户使用以下命令执行我的程序时:“./a.out ls -la”

该程序应使用 la 选项执行 ls。

但我不知道该怎么做。

我的程序使用叉子。

我尝试这种方式:

但它不起作用。

我想将数组作为 execvp 的第二个参数传递,其中 args 在命令中传递,但我对指针(以及指针的指针:s)有点困惑。

我知道这不起作用,因为参数中的破折号但即使我不使用破折号,程序也只会启动'ls'而不考虑'la'选项。

如果有人可以帮助我,我会很高兴知道这样做的好方法。

谢谢你。

0 投票
2 回答
933 浏览

c - insert unknown command to execvp()

hi if i'm passing an unknown command to execvp i'm getting this error in the errno : "no such file or directory" when i should get this error: "command not found"

how can i get the second error?

0 投票
1 回答
1310 浏览

c - execvpe argv 需要参数匹配语法帮助

我得到“从不兼容的指针类型传递 'execvp' 的参数 2”和
预期的 'char * const*' 但参数的类型是 'const char **'<br> 我想知道正确的语法是什么?谢谢!

p>

0 投票
3 回答
7029 浏览

c++ - 如何将向量传递给 execvp

我想将一个向量作为第二个参数传递给 execvp。是否可以?

0 投票
4 回答
3728 浏览

c - 从用户输入中获取 shell 命令并执行 C 程序

目前正在开发接收linux shell输入命令并执行它们创建子进程的程序。

与输入类似./program command arg但需要接收各种带有 args 的命令,例如:./program command arg command arg .....

有什么建议么?

0 投票
1 回答
241 浏览

tcl - 模拟 execvp - 有没有更好的方法来做到这一点?

我目前正在espeak用 Tcl/Tk 包装一个命令行工具 ( ),到目前为止我已经弄清楚了:

system.so 是我一起破解以便能够使用的扩展execvp

我需要的原因execvp是,由exec(Tcl) 创建的子进程似乎在进程终止时继续运行(我可以^C通过退出 GUI 来确认这一点),而如果我使用execvp,则espeak正常终止。

因此,我真正需要的只是能够启动一个子进程并按需终止它。

是否有另一个库可以正确执行此操作,例如 Expect?

0 投票
2 回答
1062 浏览

c - grep 在自定义 shell 中不起作用

我正在尝试用c编写一个shell,除了grep之外它大部分都可以工作。每当我在 shell 中发出 grep 命令时,它就不会输出任何东西。这是我用来创建新子进程然后在其中运行 execvp() 的部分代码。

dup2 中的文件描述符(fd_in 和 fd_out)作为参数传递给具有此代码的函数。最有趣的是,当我输入 'grep' 或 'grep --help' 时,它会像往常一样显示。我错过了什么吗?或者必须用 grep 做一些特别的事情?

这就是我的 shell 发生的情况:从 bash 运行时的最后一个命令输出。

这是代码: