Форум: "WinAPI";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Внизstdout 128 bytes Найти похожие ветки
← →
Alexcool (2002-07-24 17:21) [0]Вот такой вопрос - создал Pipe (CreatePipe), переназначил stdout внешного приложкния в hWritePipe, запустил внешнее приложение с помощью CreateProcess, которое пишет в stdout что-то, и из своего приложения читаю с помощью ReadFile(hReadPipe...), функция ждет до тех пор, пока не внешнее приложение не запишет в Pipe 128 байт, почему? Как с этим бороться? Ответте кто знает...
← →
DiamondShark (2002-07-24 17:34) [1]Такой уж вы указываете размер в вызове ReadFile.
← →
Alexcool (2002-07-24 17:51) [2]Ан нет, указываю 1024, например. Причем же здесь 128?
← →
DiamondShark (2002-07-24 17:55) [3]Не заметил ваш пост в другом топике.
Попробуйте читать по 1 байту
← →
Alexcool (2002-07-24 18:00) [4]пробовал, получается, как только внешняя программа запишет в stdout 128 байт, ReadFile тут же вернется и быстро вызовится еще 127 раз, а потом снова зависнет, ожидая порции в 128 байт:)))
← →
DiamondShark (2002-07-25 17:59) [5]Ух ты! Такого мне не встречалось.
Кстати, есть одно соображение. Именно на тему 128 байт.
Вторая программа (та что внешняя) случайно не на Дельфи писана?
Потому как стандартные write/writeln (точнее стандартный файловый тип Text) устроены так, что буферизируют данные, а буфер по умолчанию 128 байт. Т.е. до заполнения этого буфера в файл ВООБЩЕ НИЧЕГО НЕ ПИШЕТСЯ.
← →
SVM (2002-07-26 12:35) [6]Если не сделаешь Flush...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c