管道重定向之重定向标准输入输出句柄
1.如果控制台应用程序数据流中包含中文,则要调用 _tsetlocale(LC_ALL, _T("chs")),否则数据流中的中文字符会被当成中止符而被截断,如printf("abc中文def"),只会输出"abc"
2.printf,cout,wcout中的换行符‘\n‘,会被修改为回车加换行‘\r\n‘传递到管道中,如有语句printf("abc\r\n"),传递的真实数据流是"abc\r\r\n"
3.无论子进程编码方式是什么,传递到管道上的数据流都是多字节编码方式。因此,如果父进程是UNICODE编码,则要调用MultiByteToWideChar进行转码
原文:http://boyka3721.blog.51cto.com/10568852/1681952