exec 函数可以调用另外一个函数的方法吗?

2020-02-15 23:44:51 +08:00
 iTvX

这个好像查不到,我自己也研究不出来

我自己写了一个程序 A,然后写了一个程序 B,想从 B 程序直接使用 A 程序的方法,但是不运行 A 程序(因为 a 程序有一些东西我不想打印出来),我只想调用 A 程序的方法,这个有办法用 exec 函数实现吗?

2505 次点击
所在节点    C
6 条回复
Boxjan
2020-02-16 01:37:48 +08:00
两个都是你写的,include 不行么

exec 系函数没啥思路,但你可以看看类似于调用动态链接库那种方式去调 A 里的函数
iTvX
2020-02-16 01:43:42 +08:00
@Boxjan include 不行,要求必须用 exec 函数

我现在在想是不是可以用 fork 分一个子进程出来,然后再用父进程继续往下运行
felix021
2020-02-16 01:53:46 +08:00
exec 干不了你说的事情,建议多了解下 exec 具体做了啥(可参考 APUE )。

提供两个思路
1. 将 A 的这个方法抽出来,实现成一个库,A、B 都引用,B 直接调用该库
2. 如果该方法还依赖已经启动的 A 的一些数据,那么应该由 A 提供一个 rpc api,B 来调用。
virusdefender
2020-02-16 10:38:43 +08:00
给 A 程序加一个命令行参数,./a --func a --args 123,然后 exec 这个东西,不要和日常使用一个入口不就行了
stevenbipt
2020-02-16 14:01:00 +08:00
把 A 用到的方法封装起来然后 b 去调用这样能行吗,如果用 exec 去调用不作处理在 B 中是没有输出的(写入文件什么的请忽略。。。)
nightwitch
2020-02-16 17:20:57 +08:00
不可能在 A 程序不配合的情况下,从 B 运行 A 内部的函数的。如果你只是不想要 a 程序的输出的话,在 B 里面拉起 A 的时候,重定向 A 的输出到 /dev/null 就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644914

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX