LINUX.ORG.RU

Qprocess readall не работает


0

1

делаю так

pr->write("LOL\n");
    //pr->closeWriteChannel();


    if (!pr->waitForReadyRead(3000))
             return;

    QByteArray ba = pr->readAll();
    ui->textEdit->setText( ba );
не работает, но если раскомментировать строку то работает, но неполучается повторно сделать write. подскажите люди в чем проблема? mergechannels не помогает

Ответ на: комментарий от arsi

ниче не ждет я запускаю прогу отправляю текст получаю echo текст если ее в консоле запустить то работает все нормально, это echo программа для теста.. я уже просто измучался с вопросом работы с консольными прогами,чтобы вывод забирать у них

pozitiffcat ★★★
() автор топика
Ответ на: комментарий от arsi

вторая программа на pascal

program ce;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
   str:string;
begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
    while str<>'Q' do
    begin
      readln(str);
      writeln('echo '+str);
    end;

  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.

pozitiffcat ★★★
() автор топика
Ответ на: комментарий от pozitiffcat

в qt — waitForBytesWritten() после записи. в паскале тоже какой-то flush() делать надо после записи. они же все умные, всё буферизируют… нарывался на такие проблемы в авторизаторе для сквида.

arsi ★★★★★
()
Ответ на: комментарий от pozitiffcat

> flush(Output);

надо же, угадал :) в сях это либо fflush(), либо fsync()…

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.