C语言 从gui前端启动控制台应用



你能告诉我最好的方法吗?我可以使用popen,但是每次需要启动应用程序时,都需要为参数创建一个大的缓冲区。我可以使用fork + execv,但随后程序写入标准输出,我无法读取输出(在文本字段中显示)是否有其他解决方案?

你能告诉我最好的方法吗?我可以使用popen,但是每次我需要启动我的应用程序时,有必要为参数创建一个大的缓冲区。

popen()是一个很好的标准方式,如果您只需要与子应用程序进行单向通信,如写入stdin或从stdout读取,但不能同时进行。

在使用C语言时,需要熟悉字符串。使用C语言的字符串库来简化字符串操作(比如您的例子中的字符串连接)是很有帮助的,因为标准C语言库只提供了基本的低级函数。

我可以使用fork + execv,但随后程序写入标准输出,我无法读取输出(在文本字段中显示它)

popen()给您一个FILE*指针,指向子程序的stdout,您可以使用标准的C I/O函数fread()fscanf()从中读取其输出。同样,标准C库有这个功能,熟悉它是值得的。

还有其他解决方案吗?

您可以让子程序写入文件,然后读取该文件,但无论如何,您都需要能够构造命令行字符串并读取该文件。

最新更新