问题标签 [execl]

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

c - 请解释一下 exec() 函数及其家族

exec()函数及其家族是什么?为什么要使用这个函数,它是如何工作的?

请任何人解释这些功能。

0 投票
1 回答
565 浏览

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

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

这是我的 execl 程序:

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

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

这是我在 execv 的尝试:

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

0 投票
1 回答
756 浏览

c - C - fork() & execl() & loop + “半金字塔输出”

我有以下问题。假设我有两个程序,一个是“input.c”,第二个是“output.c”。输出很简单,看起来像这样(我将只粘贴最重要的一段)。

输出bin.c

这是我的 input.c 的主要段落:

当我使用 gcc 编译此程序并执行此操作时(没有 argv[2]): ./input 10 我得到以下信息:

没关系,但直到我删除这段代码 - “ printf("%s", input); ”并取消注释“ execl ”,所以:

并运行:./a.out 10 ./outputbin

我只得到这个 -你的输出是:A

只有第一个字符,仅此而已。如何让字符串逐行执行整个“半金字塔”?无论我尝试什么,一切都以相同的结果结束。

0 投票
1 回答
96 浏览

c - 为什么execl会覆盖文件

当我检查 log.txt 时,我找不到“船长的日志”。我认为它在 execl 之前运行,因此它应该在那里!

0 投票
1 回答
3083 浏览

c - 将管道内容打印到屏幕

我正在使用execlp()在子进程上执行命令并保存到管道中以供父进程读取,例如

在某些情况下,父级不需要执行任何操作,而只是在屏幕上打印出管道的内容,我如何在屏幕上打印管道(由于未知的输出大小可能不存储到变量中)。

0 投票
2 回答
624 浏览

c - C - 输出垃圾字符

假设我有两个程序 - input.c 和 output.c 我想要做的就是使用 execl() 函数将一些“半金字塔”格式的有效负载/字符发送到另一个程序中。

输入.c

注释段落仅用于调试目的。因为正如您所见(尝试时),当您只想打印它时,一切正常。

output.c(或者如果你想要' target.c ')

当我像这样编译 input.c 时:

&输出.c:

好的。现在,一切都准备好了。假设,我想发送一个有效载荷 - 长度为 6

但我得到的只是这个(或者只是用另一个垃圾字符):

我尝试了很多东西,但都失败了,输出仍然相同,如您在上面看到的。

如果有人可以帮助我并可能告诉我问题出在哪里,我将不胜感激。一起使用 fork() 和 execl() 函数会有问题吗?

0 投票
1 回答
78 浏览

c - 如何将数字更改为 C 中的变量?

我想知道如何用 C 替换变量的值。

我希望能够将“30828”更改为变量,因为这个值不是固定的。我想知道是否可以在 SHELL 中进行类似的操作。例如在 shell 中你可以这样做:

0 投票
2 回答
1206 浏览

c - 使用 execlp() 调用可执行文件

我正在尝试编译 2 个可执行文件。其中一个是采样器,另一个是收集器。采样器必须从收集器的子代​​中调用。采样器一将一些数据写入共享内存,收集器应从共享内存中读取数据。我正在使用 execlp 调用 Sampler,但我认为我做错了什么。它没有用下面的代码写任何东西。但是当我手动执行采样器时,它会将数据写入共享内存,然后当我执行收集器时,它可以正确读取数据。不久 execlp 函数不会正确调用采样器。为什么?

如果我不使用 execlp() 并将 Sampler 的代码放在那里,它就可以工作。

0 投票
1 回答
845 浏览

c - 如何使用 execl() 函数通过 cut 命令运行我的标准输入?

我的目标是通过 FIFO 在孩子和父母之间建立 IPC。孩子应该跑

将其输出重定向到父母的输入,父母应该运行这个命令:

并将其输出到命令行。

现在,我已经成功链接了我的 FIFO 并将我的子进程的输出重定向到父进程的输入。我已经进行了多次测试,并且该连接工作正常。问题在于剪切的 execl,它应该看起来像这样:

但我很确定不是。

main 目前只创建fifo(mkfifo)、forks()并调用函数。我的问题可能与父级的标准输入(运行剪切)有关,但我不这么认为,或者我假设 execl() 直接从标准输入读取而它没有。我认为这真的是因为我没有正确地通过 execl() 编写“剪切”。

对代码的任何更正,甚至我表达某些想法的方式都可能表明我没有正确理解某些内容,我们将不胜感激。感谢您的帮助

0 投票
2 回答
77 浏览

c - 为什么 execl 要求我在运行进程后按“Enter”?

在 bash 中,当我键入ls并按 Enter 时,二进制文件ls将运行,我将再次返回到 shell 提示符,而我这边不做任何事情。

然而,这个用 C 语言编写的程序会阻塞:

为什么?

输出如下:

此时我需要点击Enter,以便我返回 bash 提示符。为什么?