问题标签 [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 投票
1 回答
565 浏览

c - 在linux中使用execv而不是execl

我编写了一个使用 execl 的程序,我想拥有相同的功能,但使用 execv。

这是我的 execl 程序:

然后我尝试修改它以便改用 execv ,但我无法让它工作(因为它会说没有找到这样的文件或目录)

您使用 ./ProgramName testfile.txt 调用程序

这是我在 execv 的尝试:

任何帮助都会很大,现在已经坚持了很长时间。谢谢!

0 投票
1 回答
97 浏览

security - 没有从 ExecV 生成的 bash shell

我正在尝试通过观看http://www.securitytube.net/groups?operation=view&groupId=4上的视频来了解我的Ubuntu12.04 32 位机器上的缓冲区溢出。目前,我在第 5 部分,它注入一些可重定位的代码以通过 ExecVe 生成一个 bash shell

使用第 5 部分视频中显示的方法,我可以Shellcode.c很好地构建。gcc -mpreferred-stack-boundary=2 -o Shellcode Shellcode.c但是,当我运行 C 代码时,我得到的只是Segmentation Fault (core dumped). 我没有像视频中显示的那样生成 bash shell。

谁能告诉我为什么我没有像演示节目那样生成 bash shell?我的直觉告诉我这是因为我使用的是更高版本的内核(不知道演示中使用了什么)。

谢谢!

代码如下:

0 投票
2 回答
1640 浏览

c - 如何将重定向运算符“>”作为 execv 的参数传递?

在 linux 终端中,我可以输入

我以为我可以使用 execv 做同样的事情:

但是,此代码不写“你好!” 到文件,这是我想要它做的。还有另一种使用 execv 和 echo 的方法吗?

编辑:我也尝试过使用 dup2 作为解决方案:#include #include #include

但是,这也没有给我想要的结果。这写着“你好!” 到文件,但它也会覆盖已经写入文件的所有其他内容。我怎么能保证'你好!将被写入文件的END?

0 投票
1 回答
6517 浏览

c - sprintf() 命令不起作用

我正在尝试编写一个 c 程序,它从用户那里获取两个浮点数,然后使用 execv() 命令调用另一个程序。但我不能这样做,因为将 float 转换为 char 或者我不知道为什么。问题是 execv() 命令不起作用;输出必须是这样的

输入第一个数字:5
输入第二个数字:7
5.000000 + 7.000000 = 12.000000
parentPID:9745 childPID:9746 现在可以使用

但现在就是这样

输入第一个数字:5
输入第二个数字:7
parentPID:9753 childPID:9754 现在可以使用

我的第一个 c 程序 sum.c

第二个程序calculate.c

0 投票
1 回答
1121 浏览

c - execv 函数调用的参数无效

程序应该做什么的一个例子:

应该做同样的事情

所以基本上它是shell命令的无用解释器。

我创建了一个fullpath包含/bin/commandname和二维数组的字符串arguments,它基本上argv没有前两个条目(它们是executablecommandname)。

对于./executable ls -l示例,它实际上返回以下内容:

这是正确的,但execv实际上什么也没做。

我该如何解决?

0 投票
1 回答
670 浏览

ffmpeg - 如何使用 execv 执行 ffmpeg 摄取 rtmp 流

我可以在linux中成功执行以下命令:

但它在以下代码中不起作用:

有谁知道为什么?

0 投票
0 回答
1191 浏览

c - 是否可以将 execv 中的标准输出捕获到文件中?

我正在使用管道生成一个子进程,它从文件中读取一部分并通过管道发送它,以便父进程可以读取它,并执行外部程序并将标准输出重定向到文件。

问题是执行 execv 的程序的标准输出没有保存在我的 temporalFile 中。

1-我使用execv错了吗??(我在系统功能之前使用过,但教授说它不是性能不好)

2-可以处理来自 execv 的标准输出吗?

3-是否有另一种选择来执行将参数传递给外部程序并捕获其标准输出的外部程序?

4-我的代码中是否缺少某些内容?

5-如果我进行打印,则标准输出由 temporalFile 捕获。

pd:对不起,我的英语很糟糕。

}

0 投票
2 回答
439 浏览

c - C 程序不从等待语句返回

我必须将 C 程序从 OpenVMS 迁移到 Linux,并且现在在生成子进程的程序方面遇到了困难。生成了一个子进程(fork 工作正常),但 execve 失败(这是正确的,因为给出了错误的程序名称)。

但是为了重置活动子进程的数量,我随后调用了一个不返回的 wait()。当我通过 ps 查看进程时,我看到没有更多的子进程,但是 wait() 并没有像我想象的那样返回 ECHILD。

是否必须做任何事情来告诉等待命令没有更多的子进程?使用 OpenVMS,该程序可以正常工作。

非常感谢您的帮助

0 投票
0 回答
573 浏览

c++ - fork()/execv() 在 MPI 节点上挂起 (C++)

我正在用 MPI 编写一个 C++ 程序,它将在 MPI 节点上启动外部程序。为此,我使用 fork()/execv()。

问题是进程正常启动,但如果使用大量 CPU(nCPU > 48),则会在某个时候冻结。我有理由相信问题是由使用 fork()/execv() 的方法引起的。

编码:

已解决(至少看起来像......)

我修改了我的代码以实现 vfork() 而不是 fork() 现在一切正常。请注意,当 vfork() 返回子进程时,它必须紧跟在 execve 或 _exit 之后。

编码:

0 投票
1 回答
2301 浏览

c - 编写解释器或更类似于命令提示符程序

我应该编写一个更像命令提示符的解释器程序。这是一些背景信息:

例如

到目前为止我的想法是,读入文件路径,读入参数,使用 execv(filePath, args)。但是,我无法正确获取循环和语法。

这会读取无数个参数。正如我所说,我无法正确使用语法。在 C 中处理字符串真是太痛苦了:(

重新编辑。这是我当前的代码,相当不完整