我正在尝试用C语言编写一个与watch command-line tool相当的Windows .

为了启动子进程并获取其输出,我正在使用this article中描述的方法 .

这对我来说没问题,但现在输出没有颜色 . 例如,常规 git status 将使用绿色和红色来指示分阶段和未分阶段的更改 . 但是,当以 watch git status 运行时,它都是白色文本 .

我知道我可以通过不重定向输出来避免这个问题 . 然而,这不是一个选项,因为我希望它能够在我的程序中缓冲它并可能操作它,然后清除控制台并显示它 .

是否有可能从子进程中捕获颜色信息,因此我可以在自己的输出中复制它 - 如果是这样,怎么做?