当前位置: 首页 > 面试题库 >

从C程序中执行程序

万楷
2023-03-14
问题内容

我应该如何从我的C程序中运行另一个程序?我需要能够将数据写入STDIN启动的程序中(并可能从中读取STDOUT

我不确定这是否是标准的C函数。我需要应该在Linux下工作的解决方案。


问题答案:

您要使用popen。它为您提供了一个单向管道,您可以使用该管道访问程序的stdin和stdout。

popen是现代unix和类似unix的操作系统的标准配置,其中Linux是其中之一:-)

类型

man popen

在终端上阅读有关它的更多信息。

编辑

无论是popen生产单向或双向管道依赖于实现。在Linux和OpenBSD中,popen产生单向管道,这些管道是只读或只写的。在OS
X上
,FreeBSD和NetBSD popen生成双向管道。



 类似资料:
  • 问题内容: 想知道是否有人知道一种在运行时从C#代码执行Java命令行程序的好方法吗? 它与执行本机.EXE文件相同吗? 它会同步还是异步运行(这意味着我可能必须等待线程完成才能找到结果) 具体来说,我想从服务器端的Web应用程序中调用一个小工具(恰好用Java编写),以对文本文件进行一些处理。我想等待它完成,因为在Java程序完成对文本文件的处理之后,我想获取处理后的文本,并在C#应用程序中使用

  • 问题内容: 我正在阅读有关章节的内容。似乎您可以按以下方式列出节和段之间的映射。 我的问题, 我不明白程序头是什么意思?它们与细分有何关系? 段到段的映射很清楚。但是有人可以命名吗?我只看到数字。我确定了代码段(03),数据段(02)和堆栈(07)。 问题答案: 了解它的输出将帮助您了解文件的格式。请参考本文件。 就了解如何解释此链接的输出而言可能会有帮助。 关于您的问题2,此链接描述了细分。在该

  • 问题内容: 我正在尝试从Java代码执行程序。这是我的代码: 我的操作系统是Mac OS X 10.6。 如果我从方法中删除,则所有文件名都将打印在控制台上。但是我需要将其打印到文件中。 另外,如果我将命令更改为: 并在Windows上运行,它也可以运行并在文件中完美打印结果。 我已经阅读了其他文章,以期从Java执行另一个应用程序,但似乎都与我的问题无关。 我会很感激我能得到的任何帮助。 谢谢,

  • 野姑娘。如果我编写了这个包装器,我可以按照上面描述的方式调用包装器: XML::XPath。可以使用此包装: XML::XPath中的返回太多噪声、和。 返回与类似的噪声。 返回。 返回所需的内容,但仅针对第一个匹配项。 对于几乎满足这个问题的另一个解决方案,这里有一个XSLT,可以用来计算任意XPath表达式(需要XSLT处理器中的dyn:evaluate支持): 使用。

  • 问题内容: 我正在使用的程序使用ADB(Android调试桥)将文件发送到手机: 我希望程序等待ADB完成传输,但是ADB作为守护程序运行,因此永远无法完成。但是该程序仍在继续运行,并且某种程度上文件没有发送到我的手机(日志中没有例外)。当我从控制台运行命令时,它可以正常工作。 我究竟做错了什么?如何正确通过ADB发送文件? 注意:这将不起作用,因为ADB守护程序会将 所有输出 写入系统标准输出。

  • 问题内容: 我如何从Java程序运行本地jar文件? jar文件不在Java调用程序的类路径中。 问题答案: 我建议你使用并启动一个新的JVM。 以下是一些入门知识: