iTvX
V2EX  ›  C

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

  •  
  •   iTvX · Feb 15, 2020 · 3291 views
    This topic created in 2292 days ago, the information mentioned may be changed or developed.

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

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

    6 replies    2020-02-16 17:20:57 +08:00
    Boxjan
        1
    Boxjan  
       Feb 16, 2020 via Android
    两个都是你写的,include 不行么

    exec 系函数没啥思路,但你可以看看类似于调用动态链接库那种方式去调 A 里的函数
    iTvX
        2
    iTvX  
    OP
       Feb 16, 2020
    @Boxjan include 不行,要求必须用 exec 函数

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

    提供两个思路
    1. 将 A 的这个方法抽出来,实现成一个库,A、B 都引用,B 直接调用该库
    2. 如果该方法还依赖已经启动的 A 的一些数据,那么应该由 A 提供一个 rpc api,B 来调用。
    virusdefender
        4
    virusdefender  
       Feb 16, 2020
    给 A 程序加一个命令行参数,./a --func a --args 123,然后 exec 这个东西,不要和日常使用一个入口不就行了
    stevenbipt
        5
    stevenbipt  
       Feb 16, 2020
    把 A 用到的方法封装起来然后 b 去调用这样能行吗,如果用 exec 去调用不作处理在 B 中是没有输出的(写入文件什么的请忽略。。。)
    nightwitch
        6
    nightwitch  
       Feb 16, 2020
    不可能在 A 程序不配合的情况下,从 B 运行 A 内部的函数的。如果你只是不想要 a 程序的输出的话,在 B 里面拉起 A 的时候,重定向 A 的输出到 /dev/null 就行了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3259 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 11:57 · PVG 19:57 · LAX 04:57 · JFK 07:57
    ♥ Do have faith in what you're doing.