问题标签 [execv]

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 投票
2 回答
1755 浏览

c - 在通过 execv 执行的子进程中使用 Scanf() 不起作用

我正在执行一个非常简单的程序,它使用 scanf 从用户那里获取整数输入。我通过 fork() 和 execv 将该程序作为子程序执行。子程序从不接受用户的输入。任何帮助将不胜感激。

子代码是

输出

我在虚拟机上安装的 fedora 中运行代码。谢谢

0 投票
2 回答
1033 浏览

c - 如何在 c 中将 char ** 转换为 char *[]?

execv函数将指针数组作为第二个参数。我有一个指向指针的指针,一个动态创建的字符串列表。

如何从中创建一个指针数组?

否则,如果简单地传递listexecv.

0 投票
2 回答
2910 浏览

shell - 不使用路径执行系统调用

在不知道给定命令的完整路径的情况下,可以使用哪些 exec 系统调用系列成员。例如当

从命令行给出的输入我可以像这样正确使用 execv(arg[0],args)

但是当我有“ls /sbin”“wc -w”“cat”输入时,我不能使用 execv。

0 投票
1 回答
191 浏览

registry - prog name 和 argv 的 trapframe 寄存器值

我正在使用 os161,我想找到 char *program name 和 char **argv 的寄存器值以从 traframe 结构传递给 execv 系统调用

trapframe->tf_a1 存储 argv 值,但所有的数据类型都是 trapframe 中的 u_int32

我怎样才能找到它们?

谢谢

0 投票
1 回答
25431 浏览

c - waitpid - 尽管子进程正常退出,WIFEXITED 返回 0

我一直在编写一个生成子进程的程序,并调用waitpid以等待子进程终止。代码如下:

waitpid状态的联机帮助页WIFEXITED

我的意思是它应该在成功时返回一个整数!= 0,这在我的程序执行中没有发生,因为我观察到WIFEXITED(status) == 0

但是,从命令行执行相同的程序会导致$? == 0,从 gdb 开始会导致:

该程序运行正常,除了触发的警告,这让我觉得这里发生了其他事情,我错过了。

编辑:
正如评论中建议的那样,我检查了孩子是否通过段错误终止,并且确实WIFSIGNALED(status)返回 1,并WTERMSIG(status)返回 11,即SIGSEGV.

但我不明白的是,为什么通过 execv 的调用会因段错误而失败,而通过 gdb 或 shell 的相同调用会成功?

EDIT2:
我的应用程序的行为很大程度上取决于子进程的行为,特别是子进程在声明的函数中写入的文件__attribute__ ((destructor))waitpid调用返回后,此文件存在并正确生成,这意味着段错误发生在另一个析构函数的某个地方,或者我无法控制的某个地方。

0 投票
0 回答
200 浏览

execv - 从 linux kernel 3.2 中找到 execv() 的实现

如何找到 execv() 的实现(包括它的路径)以及它在 linux 内核 3.2 中的定义在哪里?

我试图找到它的实现并在这个文件中编写一个重定向代码,它重定向到我的自定义系统调用。

0 投票
2 回答
474 浏览

c++ - 使用 execv 从 C++ 启动服务

我正在尝试从 C++ 启动 linux 服务并且我成功地做到了,但是我的一个进程被标记为“已失效”,我不希望我的父进程死亡。

我的代码是(testRip.cpp):

ps -e 命令的退出是:

/etc/init.d/zebra 将服务作为守护进程或类似的东西启动,所以我认为这是诀窍,但是:

为什么有 3 个进程,其中一个被标记为已失效?我的代码有什么问题?我该如何解决?

提前致谢。

0 投票
1 回答
445 浏览

java - Java Program terminates after JNI method call

I'm using JNI to call native C methods, but my java program terminates (Exit code 0) after the first method call and doesn't reach the rest of the code.

Here is my source:

Exec.java:

Exec.c:

TestExec.java:

Console output:

I'm also missing the console output from my c-method, which should look like this:

I hope I gave enough information to get qualified help.

0 投票
1 回答
739 浏览

c - 从子进程向父进程发送消息

我正在执行父代码。然后我做一个 fork 然后 execvpe。我“execvpe”的新程序抛出了很多控制台消息,我想隐藏这些消息。

我是否可以将子进程中的所有 stdout 和 stderr 消息重定向到文件中?

我尝试了关闭(1),这样我就不会在控制台(stdout)上转储消息并且没有帮助

0 投票
2 回答
111 浏览

python - 在单个python脚本中执行多个可执行文件?

据我所知, execv 超过了当前进程,一旦被调用的可执行文件完成,程序就会终止。我想在同一个脚本中多次调用 execv,但正因为如此,这无法完成。

是否有在当前进程中运行的 execv 替代方案(即打印到相同的标准输出)并且不会终止我的程序?如果是这样,它是什么?