我正在使用CreateProcess(x)函数测试控制台标准I / O重定向,并将子进程输出重定向到匿名管道。不知何故,当我从管道输出读取时,我发现只有字符被重定向到管道,而不是使用WriteConsoleOutput(x)函数写入输出句柄的CHARINFO结构。
我想知道是否有任何方法可以重定向CHARINFO结构,以便我可以正确地将其显示到目标输出。
这是我到目前为止所做的步骤:
第6步是我发现问题的地方。起初我虽然会得到CHARINFO结构,所以我尝试将readFile(x)函数的lpBuffer返回转换为CHARINFO struc数组。我马上看到了错误。当我检查lpBuffer时,我发现只存储在lpBuffer中的字符,而不是属性。
在这种情况下,有没有办法重定向CHARINFO?如果是,我如何识别ReadFile(x)返回缓冲区是CHARINFO数组还是字符数组?需要区分,因为我无法控制子进程输出到控制台的方式。