C怎么控制需要交互的二进制程序

u俺的me 2020-05-28 03:56:42
我有二进制文件,该文件需要3步输入交互(比如键盘输入选项)才能生成我需要的数据,

现在我的代码中需要用到这些数据,但是又没有以上二进制程序的源码,有没有什么办法在代码中实现3步交互、控制二进制程序,从而得到我需要的数据?
谢谢!
...全文
133 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
u俺的me 2020-05-29
  • 打赏
  • 举报
回复
引用 9 楼 qybao 的回复:
那就echo回车符试试
echo -e “信息1\n信息2\n信息3” | 二进制文件
谢谢大佬的指点,好用!
qybao 2020-05-28
  • 打赏
  • 举报
回复
那就echo回车符试试 echo -e “信息1\n信息2\n信息3” | 二进制文件
u俺的me 2020-05-28
  • 打赏
  • 举报
回复
引用 7 楼 21211321 的回复:
[quote=引用 5 楼 smwhotjay 的回复:]
createprocess 启动程序。io定向到管道。读取管道和写入管道。
简单的输入可以echo 命令行。
谢谢!不过我不是很明白,这样的话是不是要用父子进程实现?[/quote]我的交互很简单,3次交互,每次都只需要输入1个数字就行了
u俺的me 2020-05-28
  • 打赏
  • 举报
回复
引用 5 楼 smwhotjay 的回复:
createprocess 启动程序。io定向到管道。读取管道和写入管道。
简单的输入可以echo 命令行。
谢谢!不过我不是很明白,这样的话是不是要用父子进程实现?
u俺的me 2020-05-28
  • 打赏
  • 举报
回复
引用 4 楼 qybao 的回复:
[quote=引用 3 楼 qybao 的回复:]
用LS说的管道试试
或者用户交互部分可否用输入重定向?

如果只想用system调用,可以试试看
echo 用户交互信息 | 你的二进制文件 //以管道的方式
或者
你的二进制文件<<用户交互信息。//以输入重定向的方式
[/quote]你好,我如果用system()调用,相当于一调用进程就立即阻塞在二进制程序中的getchar()那里了,那怎么才能继续使用echo或者重定向呢?
smwhotjay 2020-05-28
  • 打赏
  • 举报
回复
createprocess 启动程序。io定向到管道。读取管道和写入管道。
简单的输入可以echo 命令行。
qybao 2020-05-28
  • 打赏
  • 举报
回复
引用 3 楼 qybao 的回复:
用LS说的管道试试
或者用户交互部分可否用输入重定向?

如果只想用system调用,可以试试看
echo 用户交互信息 | 你的二进制文件 //以管道的方式
或者
你的二进制文件<<用户交互信息。//以输入重定向的方式
qybao 2020-05-28
  • 打赏
  • 举报
回复
用LS说的管道试试
或者用户交互部分可否用输入重定向?
u俺的me 2020-05-28
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
考虑一下用匿名管道

这个用管道行吗,没有 二进制可执行程序 的代码,我的思路是先通过system()往标准输入stdin中把需要交互的字符先写进去,然后希望二进制程序运行时能读出来
真相重于对错 2020-05-28
  • 打赏
  • 举报
回复
考虑一下用匿名管道

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧