5doumi 发表于 2014-02-13 20:59

我想在LINUX系统中的C里边调用一个可执行程序 这个可执行程序是可交互的,即运行过程

我想在LINUX系统中的C里边调用一个可执行程序
这个可执行程序是可交互的,即运行过程中会有多个用户提示,也可接受用户的多次输入。
我想在C里面模拟这个交互过程,有什么方法可以实现吗。

我查了一下,system()不可交互,而popen只能是单纯的输入或者输出重定向。
请问有其他可用的API吗?

Dannysd 发表于 2014-02-13 23:21

API不知道

MARK,等大神来解答

多线程能不能实现?

folklore 发表于 2014-02-14 07:37

自已fork, 再wait噬

asdf7161 发表于 2014-03-19 17:13

先dup
再fork+exec

syncpk99 发表于 2014-03-19 17:41

aix下popen打开的文件句柄是可以读取和写入的,应该可以实现交互。
需要输入密码的除外!

sxcong 发表于 2014-03-20 17:12

很多程序是通过socket实现的,比如asterisk,mysql,memcached等。就是自己定好协议,与哪个端口通信,这样也可以远程调试。我一般用这个方法,当然上面同学说的应该更通用一些。

qianguozheng 发表于 2016-02-01 17:55

回复 4# asdf7161


    不知道, dup复制文件描述符, 然后呢? fork+exec替换新启动的进程的环境. 那么, 如何实现交互呢? 不明白.

    dup使用的目的不明白, 不知道这个与下面的fork+exec如何联系到一起的.

流氓无产者 发表于 2016-02-02 09:36

5doumi 发表于 2014-02-13 20:59 static/image/common/back.gif
我想在LINUX系统中的C里边调用一个可执行程序
这个可执行程序是可交互的,即运行过程中会有多个用户提示, ...
一切都是0/1/2
你考虑的重点的两个程序如何交互的问题:luya:

bskay 发表于 2016-02-04 10:15

手里有个锤子,往往看什么都往钉子上靠
工具不好用,就换个工具呗

jonas_mao 发表于 2016-02-17 09:48

目前用的比较多的也是这种,多数是实现cmd 和debug 回复 6# sxcong


   
页: [1] 2
查看完整版本: 我想在LINUX系统中的C里边调用一个可执行程序 这个可执行程序是可交互的,即运行过程