【发布时间】:2015-07-16 06:22:12
【问题描述】:
我有一个 C 程序,xyz.c,它对某个变量进行一些计算,比如transferme。我想传输这个变量/将此变量传递给另一个 C 程序,比如jkl.c。
我一直在尝试做以下事情:
Fork xyz.c 并使用 execvp() 将此 transferme 传递给 jkl.c 的可执行文件 [原来 execvp 将只接受指向二进制可执行文件或 shell 脚本。]
正在发生的事情是,
-
execvp() 不传递变量,它需要
const char *作为参数的类型。 - 将路径传递给二进制可执行文件不起作用。 [我尝试了一个简单的 fork 和 execvp,没有尝试传递变量。]
有人可以吗:
- 告诉我在这种情况下如何使用 execvp()?二进制可执行文件位于主文件夹中,例如路径为
/home/user/jkl.o - 告诉我如何将此变量传递给其他程序?
我尝试查看pipe,但我更加困惑。
编辑:我的意思是jkl.out
【问题讨论】:
-
xyz.c和jkl.c不是程序,它们是源文件 -
只是为了确定,
jkl.c只是另一个源代码文件,还是一个可执行文件? -
他们每个人都有
main函数吗? -
transferme是什么类型的变量?大多数类型都可以轻松转换为字符串并返回。 -
@Eregrith 他们都有
main函数。
标签: c pipe exec fork argument-passing