关于管道操作的一些疑问
本帖最后由 Volftooth 于 2012-09-18 00:04:43 编辑 1、看过一些代码、在 CreatePipe 后就关闭了写句柄或者读句柄、为什么要关闭?、关闭了不就不能让 CMD 通过写句柄向管道中写数据了么?、或者不能从管道中读数据、
2、我想让 CMD 中的回显信息分行显示、这样我就不得不格式化接收到的字符、判断\r\n、然后显示、这样就有一个问题、我并不知道 CMD 信息中从哪里开始有 \r\n、并且这种流式数据可能并不是完整的、有时需要拼合、我目前的做法是一个字符一个字符的读、边判断边合并成一个整句然后输出、但这样速度不够、导致状态栏只显示最后一条信息、有什么其它办法么?、
上一段代码、
do
{
ReadFile(read_pipe, &data, 1, &read_size, 0);
show_data[show_data_usage++] = data;
if(data == '\n')
{
show_data[show_data_usage] = 0;
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, show_data, show_data_usage + 1, show_data_uni, 128);
update_info_text(show_data_uni);
show_data_usage = 0;
show_data[0] = 0;
}
PeekNamedPipe(read_pipe, NULL, 0, NULL, &read_size, NULL);
}while(read_size);