首页 / 知识
如何从C运行外部程序并解析其输出?
2023-04-14 03:58:00

How can I run an external program from C and parse its output?我有一个实用程序,可以输出游戏所需的文件列表。 如何在C程序中运行该实用程序并获取其输出,以便可以在同一程序中对其进行操作? 更新:很好的呼吁缺乏信息。 该实用程序会发出一系列字符串,并且应该可以在Mac / Windows / Linux上完全移植。 请注意,我正在寻找一种编程方式来执行该实用程序并保留其输出(将其输出到stdout)。
正如其他人指出的那样,
对于Unix类环境中的简单问题,请尝试 从手册页:
如果您使用读取模式,这正是您所需要的。我不知道它是否在Windows中实现。 对于更复杂的问题,您需要查找进程间通信。 Windows上支持popen,请参见此处: http://msdn.microsoft.com/zh-CN/library/96ayss4b.aspx 如果您希望它是跨平台的,则应该使用popen。 好吧,假设您在Windows环境中使用命令行,则可以使用管道或命令行重定向。例如,
要么
在您的程序中,您可以使用C标准输入函数来读取其他程序的输出(scanf等):http://irc.essex.ac.uk/www.iota-six.co.uk/c/c1_standard_input_and_output .asp。您也可以使用文件示例并使用fscanf。这也应该在Unix / Linux中工作。 这是一个非常笼统的问题,您可能需要包括更多详细信息,例如输出是什么类型(只是文本还是二进制文件?)以及如何处理它。 编辑:万岁澄清! 重定向STDOUT看起来很麻烦,我不得不在.NET中进行操作,这使我头疼不已。似乎正确的C方法是生成一个子进程,获取一个文件指针,突然间我的头很痛。 因此,这是使用临时文件的黑客。很简单,但是应该可以。如果速度不成问题(击打磁盘很慢)或将其丢弃,这将很好地工作。如果要构建企业程序,则最好使用其他人的建议来研究STDOUT重定向。
确保检查您的文件权限:现在,这将简单地将文件与exe放在同一目录中。您可能要考虑在nix中使用
正如dmckee所指出的,在Linux和OS X中,
MSDN文档说
您可以按以下方式使用
其中
|
最新内容
相关内容
linux自动运行命令?
linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,linux计划任务(自动化执行任务的利器)1、Linux计划任务是一种自动linux开启运行命令?
linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,linux中如何开机启动运行指定的应用程序或指令?1、开机启动时自动运linux运行wps命令?
linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps支持linux命令行下word转pdf吗?1、通过浏览器进入到wps官网,然后点linux命令输出加时间?
linux命令输出加时间?,时间,系统,名称,设备,命令,信息,管理,标准,数字,百度,linux中,怎么通过shell语句获取当前日期,输出格式要求20111224._linux命令日志输出?
linux命令日志输出?,系统,状态,命令,情况,对比,标准,实时,服务,下来,数据,怎么导出linux系统日志.1、首先进入系统日志,所有服务的登录的文件或linux运行cmd命令?
linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑运行命令怎么打开电脑运行命令需要同时按下“win图标”键和“R”linux命令输出到vi?
linux命令输出到vi?,工作,系统,状态,档案,命令,模式,信息,正规,第一,编辑,linux下vi编辑器命令大全linux退出vi编辑命令有四种:使用“:wq”或“:xlinux命令输出截取?
linux命令输出截取?,位置,网上,信息,命令,字符串,字符,左边,日志,中间,之间,Linux字符串截取几种方法sed -n : 随意选择需要查看的行 sed命令是linux运行两个命令?
linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Linux下必须知道的11个网络命令1、netstat -r:打印路由表。路由表保linux命令输出计算?
linux命令输出计算?,标准,地址,工作,信息,系统,命令,软件,数据,文件,控制台,linux借用外部命令expr,实现计算器功能,利用管道,进程1、你得装一linux持续命令输出?
linux持续命令输出?,系统,工作,地址,信息,情况,状态,数据,管理,工具,指标,linux系统怎样查看服务器性能命令1、top命令是Linux下常用的性能分linux命令行打印输出?
linux命令行打印输出?,地址,工作,命令,网络,信息,标准,系统,文件,目录,控制台,linux命令输出到屏幕的同时保存到文件su -c command output.txt