gpt4 book ai didi

c++ - 如何集成开源 C 程序而不是通过系统调用调用其可执行文件?

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:24 25 4
gpt4 key购买 nike

我有一个可执行文件 (fossil scm),我的程序通过::CreateProcess 窗口调用从外部调用它。然后捕获 stdout 和 stderr。由于 fossil 的源代码可用,我更愿意从中创建一个静态库并直接发出调用。目前,与 fossil 的通信是通过命令行参数完成的,而返回的通信是通过进程返回码、stdout 和 stderr。 Fossil 通过 printf 和 fprintf 调用写入 stdout/err。

以最少的化石来源改变来解决这个问题的最佳方法是什么?是否有一种可靠的跨平台方式来拦截 stdout/err 并将其发送到内存缓冲区?

最佳答案

你说你想

intercept stdout/err and send it into a memory buffer

这表明您不想为 SCM 程序引入 API,而是希望在不更改现有代码的情况下继续解析文本输出。如果是这样,那么我认为改变您当前的方法毫无意义。在当前方法上使用内存缓冲区和静态链接到底能获得什么?

关于c++ - 如何集成开源 C 程序而不是通过系统调用调用其可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com