问题标签 [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.
linux - execl 如何处理 Linux 中的“/bin/sh”?
我阅读了APUE 3rd , 8.13, system Function,我看到了一个没有信号处理的系统函数实现版本。代码如下:
该版本用于测试系统功能的代码如下:
并且测试代码的结果如图所示(看不懂的就忽略结果中的中文): 我不知道为什么execl会返回如果“nosuchcommand”,对/bin/sh无效,是给/bin/sh。在我看来,execl只是替换当前进程的代码,然后从入口点运行,即使“nosuchcommand”对/bin/sh无效,它与execl无关,而是/bin/sh。那么,execl 如何知道“nosuchcommand”对于 /bin/sh 执行和返回无效?execl 是否通过在执行 /bin/sh 之前检查给 /bin/sh 的命令来区别对待 /bin/sh,以便它会提前知道给 /bin/sh 的无效参数?我知道 execl 不会以不同的方式对待 /bin/sh,所以,execl 怎么知道“nosuchcommand”
c - 如何在 execl 函数中使用 cd 和 vi
我想使用该execl
函数从我的 c 程序中调用命令 cd 和 vi,但它不起作用。这就是我为 rm 和 ls 所做的:
它适用于ls
and rm
,但是当我尝试用vi
and做同样的事情时cd
它不起作用。
c - 从用于运行 shell 脚本的 excl 获取输出
嗨,我想获得有关从我应该从 excl 调用中执行的脚本获取输出的建议:
如果我在运行二进制文件时使用相同的代码,我可以读出它的输出,但是,当我尝试执行上述脚本时,我只能读取发出的命令。
例子:
但如果
为什么是这样?
c - 执行与执行
有什么场合可以更好地使用execl
而不是execlp
?我认为当一个程序位于两个不同的文件夹中时,execlp
可能会导致混淆,但我不知道这是否是唯一的情况。我问是因为人们可能认为写作execlp("ls", ...)
比写作更容易execl("/bin/ls", ...)
。
c - 如何在C中执行带参数的shell命令
我无法单独执行命令,参数正在工作。我怎样才能让它双向工作。
Funcion 正在处理命令和参数,我确信它们是正确的,但是我找不到执行它的方法。
一般来说,我怎样才能阻止叉形炸弹,如何检查它们并避免它们?
c - 当文件不存在时,execl error == "file exists"
我试图了解 execl 在尝试启动不存在的文件时返回的错误。
这是我的这个实验的代码,其中 main 调用函数 spawn1 将创建 fork 并尝试启动 execl:
返回的错误是:
为什么不是更像“文件不存在”?
c - execl + find + -exec: `-exec' 缺少参数
我正在尝试运行execlp
,find ... -exec ...
并且find
程序始终告诉我:
有什么问题?当我在 shell 上使用这些参数运行 find 时,它会成功。
我的函数调用如下(在查看了相关的 SO 线程之后,我尝试了几种参数的排列):
system - externnotify C 代码中的 execl 在 Asterisk 的语音邮件部分中不起作用
我正在努力解决这个问题。在 Asterisk 中,我需要在留下语音邮件消息后执行外部脚本。为此,我在 voicemail.conf 中启用了 externnotify,但它不起作用。所以我在C代码中搜索并找到了相关代码。执行外部脚本的命令是:
其中s是/usr/bin/myscript.sh default 2000 12 8 0 &
。excel在子进程中成功运行,但脚本myscript.sh
是:
不执行。奇怪的是我写了另一个 C 文件并将 execl 命令放入其中,它成功执行了我的脚本。我execl
用system
命令替换但再次没有成功。我做错了哪一部分?
c - 尝试使用 execle 时出现预期的参数声明错误
所以我是一个新学习者,我似乎无法弄清楚为什么在尝试编译此代码时会出现以下错误。作为参考,我正在学习“Head First C”这本书,这是他们在第 9 章早期给出的一个例子。虽然我已经完全复制了它,但它仍然不起作用,我很困惑为什么。在我看来,我给了它想要的参数,所以我不知道它还要求什么。
代码:
错误:
c - 如何从另一个文件读取管道输入?
在我的程序(main.c)中,我分叉了一个进程,然后我需要通过管道将数据发送到子进程。在execl 系统调用之后,子进程在 process.c 文件中继续其生命。通过将该子进程的标准输入设置为其父进程的文件描述符,我尝试将数据从父进程发送到子进程。但是子进程无法获得任何输入,我无法理解为什么会出现这个问题。提前谢谢了。
主程序
进程.c