问题标签 [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 - 如何使用 execl() 编译包含 math.h 库的程序
我使用这一行编译到 myMainProg 中的 myprog.c。但是 myprog.c 有 #include "math.h" 。所以我必须添加-lm。我怎样才能做到这一点?
c++ - 如何使用 execl 作为系统的替代品
我想用execl
为什么执行命令回显测试?因为我不能使用system()
我有一些原因出了什么问题?
c - 普通C程序的exec segfault
在 gdb 中运行一个简单的程序,该程序派生并执行客户端。execl 行(在 gdb 中的低级 2 内)给出进程 ID“正在执行新程序”,然后立即出现 seg 错误。
到那时的代码如下:
为了完整起见,子程序开始如下:
有任何想法吗?我什么也没得到,只是段错误本身,我立即得到它。
c - execl & printf - 顺序
我对此有一个小问题:
一切正常,但为什么execl
只是在之前运行printf
?有人可以帮助我吗?
c - 使用C将参数传递给另一个函数
以上是 validate.c 的实现,但是如何使用 pipe()、dup2 或 execl() 将 userid 和 password 等值传递给函数
我用了以下`
}
但提示总是要求我重新输入输入。这种方法有什么问题?(注意:我“execl”“validate”因为它是一个已经创建的可执行文件。我写的 execl() 只是调用了 validate.c 函数)
c - 读/写 bash 解释器 linux 的标准输入/输出,fork - execl
我一直在尝试编写一个向 bash shell (/bin/sh) 发送和接收命令的程序。就像一个围绕 bash shell 的包装程序。因此,我可以写入标准输入“cd ~/Desktop”,然后再写入“ls”,我将收到桌面上的文件列表。我无法让它工作。在此代码中的第二个写入命令中,它将回显我写入标准输入的任何内容。我也尝试过使用 popen() 但它只提供输出,不允许我写入标准输入。有人可以帮忙解决这个问题吗?谢谢
}
编辑 - 每个第一个答案的更新代码,现在第二个 read() 调用没有输出
}
c - 在 C 中通过 argv 使用管道发送和接收字符数组
因此,我正在尝试创建一个管道,该管道通过通过 argv [] 连接的管道来回发送 char 数组。现在,我坚持在 interface.c 中接收数组(从父级到子级发送到 c_param 的参数)以在 db.c 中接收字符 3 和 5。我知道 3 和 5 是我的管道所在的 argv[] 的索引,但我不确定如何获取它并在 db.c 中打印出我的消息。
interface.c 创建管道,分叉成父进程和子进程。char 数组 param 被传递给子进程到 char 数组 c_param。使用 snprintf,我将管道变成了一个 char,以便使用 execl 和我的 char 数组 c_param 发送。
接口.c:
db.c 从 interface.c execl 启动并且应该通过 argv[] 接收参数,然后应该将其打印出来。数据库
这是我得到的当前输出,我知道 5 和 3 是我需要发送消息并接收我当前正在尝试在 db.c 中打印的消息的索引
输出(db.c):
我希望我给了你足够的信息,我很感激你愿意给我的任何帮助。先感谢您!
c - 如何检查 execl() 是否成功(多进程)
我通过 fork() 创建了多个子进程,并让它们通过 execl() 运行可执行文件。
我想检查是否有任何 execl() 失败(例如:尝试执行不存在的文件)。通过,尝试 execl() 所有程序,如果其中一个程序失败,则在 start 与任何程序通信之前返回 1。
这是参考代码,(假设所有设置都正确)
该程序仍然向“不存在”发送消息(但没有按预期收到任何回复)。
有没有办法实现我的目标?谢谢!
c - C中两个程序之间的管道
在过去的几个小时里,我一直坚持让管道在两个程序之间工作,我被卡住了,不确定我是否做错了什么。我的程序的想法是我将使用interface.c打开一个管道,然后执行db.c。我想使用两个管道在两个不同的程序之间进行通信。现在,由于 interface.c 是“父级”,而 db.c 是“子级”,我不确定我是否通过 execl 命令正确地将参数传递给我的管道。一切都正确编译,但是当我尝试运行界面程序时,我收到一条错误消息:“错误的文件号。” 有没有可能我没有正确使用管道?目前,我只是想让我的程序发送一个整数,值,通过管道到 db.c。任何帮助将非常感激。
interface.c 的代码
这是给 db.c
c++ - 由于地址错误,执行失败
我对 exec 有一个严重的问题。我已经尝试了 list(execl) 和 array(execv) 这两个选项,但问题仍然存在。我将给出我尝试拨打电话的函数。
}
aparams[0] 包含一个带有可执行文件名称的字符串,比如说“test”。我编译了 -> g++ test.cpp -o test -> 所以我得到了这个可执行文件。aparams 的其他位置包含测试程序的一些参数。
因此,测试永远不会运行(当我从命令行运行它时没问题)并且 perror 显示消息“exec 中的问题是:错误地址。”
我也尝试过强制转换所有参数(const char*),但没有任何改变。是争论的问题吗?还是可执行文件的问题?