问题标签 [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.
c - 请解释一下 exec() 函数及其家族
exec()
函数及其家族是什么?为什么要使用这个函数,它是如何工作的?
请任何人解释这些功能。
c - 在linux中使用execv而不是execl
我编写了一个使用 execl 的程序,我想拥有相同的功能,但使用 execv。
这是我的 execl 程序:
然后我尝试修改它以便改用 execv ,但我无法让它工作(因为它会说没有找到这样的文件或目录)
您使用 ./ProgramName testfile.txt 调用程序
这是我在 execv 的尝试:
任何帮助都会很大,现在已经坚持了很长时间。谢谢!
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
只有第一个字符,仅此而已。如何让字符串逐行执行整个“半金字塔”?无论我尝试什么,一切都以相同的结果结束。
c - 为什么execl会覆盖文件
当我检查 log.txt 时,我找不到“船长的日志”。我认为它在 execl 之前运行,因此它应该在那里!
c - 将管道内容打印到屏幕
我正在使用execlp()
在子进程上执行命令并保存到管道中以供父进程读取,例如
在某些情况下,父级不需要执行任何操作,而只是在屏幕上打印出管道的内容,我如何在屏幕上打印管道(由于未知的输出大小可能不存储到变量中)。
c - C - 输出垃圾字符
假设我有两个程序 - input.c 和 output.c 我想要做的就是使用 execl() 函数将一些“半金字塔”格式的有效负载/字符发送到另一个程序中。
输入.c
注释段落仅用于调试目的。因为正如您所见(尝试时),当您只想打印它时,一切正常。
output.c(或者如果你想要' target.c ')
当我像这样编译 input.c 时:
&输出.c:
好的。现在,一切都准备好了。假设,我想发送一个有效载荷 - 长度为 6
但我得到的只是这个(或者只是用另一个垃圾字符):
我尝试了很多东西,但都失败了,输出仍然相同,如您在上面看到的。
如果有人可以帮助我并可能告诉我问题出在哪里,我将不胜感激。一起使用 fork() 和 execl() 函数会有问题吗?
c - 如何将数字更改为 C 中的变量?
我想知道如何用 C 替换变量的值。
我希望能够将“30828”更改为变量,因为这个值不是固定的。我想知道是否可以在 SHELL 中进行类似的操作。例如在 shell 中你可以这样做:
c - 使用 execlp() 调用可执行文件
我正在尝试编译 2 个可执行文件。其中一个是采样器,另一个是收集器。采样器必须从收集器的子代中调用。采样器一将一些数据写入共享内存,收集器应从共享内存中读取数据。我正在使用 execlp 调用 Sampler,但我认为我做错了什么。它没有用下面的代码写任何东西。但是当我手动执行采样器时,它会将数据写入共享内存,然后当我执行收集器时,它可以正确读取数据。不久 execlp 函数不会正确调用采样器。为什么?
如果我不使用 execlp() 并将 Sampler 的代码放在那里,它就可以工作。
c - 如何使用 execl() 函数通过 cut 命令运行我的标准输入?
我的目标是通过 FIFO 在孩子和父母之间建立 IPC。孩子应该跑
将其输出重定向到父母的输入,父母应该运行这个命令:
并将其输出到命令行。
现在,我已经成功链接了我的 FIFO 并将我的子进程的输出重定向到父进程的输入。我已经进行了多次测试,并且该连接工作正常。问题在于剪切的 execl,它应该看起来像这样:
但我很确定不是。
main 目前只创建fifo(mkfifo)、forks()并调用函数。我的问题可能与父级的标准输入(运行剪切)有关,但我不这么认为,或者我假设 execl() 直接从标准输入读取而它没有。我认为这真的是因为我没有正确地通过 execl() 编写“剪切”。
对代码的任何更正,甚至我表达某些想法的方式都可能表明我没有正确理解某些内容,我们将不胜感激。感谢您的帮助
c - 为什么 execl 要求我在运行进程后按“Enter”?
在 bash 中,当我键入ls
并按 Enter 时,二进制文件ls
将运行,我将再次返回到 shell 提示符,而我这边不做任何事情。
然而,这个用 C 语言编写的程序会阻塞:
为什么?
输出如下:
此时我需要点击Enter,以便我返回 bash 提示符。为什么?