我有一个可执行文件(fossil scm),我的程序通过 ::CreateProcess windows 调用在外部调用它。然后捕获标准输出和标准错误。由于化石的源代码可用,我更愿意从中创建一个静态库并直接发出调用。目前,与fossil的通信是通过命令行参数完成的,返回的通信是通过进程返回码、stdout和stderr。Fossil 通过 printf 和 fprintf 调用写入 stdout/err。
以最少的化石来源改变来解决这个问题的最佳方法是什么?是否有可靠且跨平台的方法来拦截 stdout/err 并将其发送到内存缓冲区?