LINUX.ORG.RU

QProcess::start и QDebug из дочернего процесса

 ,


0

1

Есть процесс slave, есть master. Мастер запускает дочерний процесс через QProcess::start, но всё что пишется через printf и QDebug - не вижу:

slave.start("./dt_slave", args);
if(slave.waitForStarted())
{
	slave.setProcessChannelMode(QProcess::ForwardedChannels);
	slave_pid = slave.pid();
	qDebug() << "slave PID=" << slave_pid;
	while(true)
	{
		if(slave.waitForFinished(500))
		{
			break;
		}
	}
}
Я пробовал и другие комбинации - результат тот же, хотя когда использовал execute - всё выводилось. Процесс точно запускается и работает.

★★★★★

Последнее исправление: I-Love-Microsoft (всего исправлений: 2)

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

поэтому перенес setProcessChannelMode до start и проблему решилась :)

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от bhfq

я переписал это уже, почему-то если вообще не waitforfinished то дочерний процесс валится в defunct и я вижу state все время running

к тому же я делаю это в потоке - так надо

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от bhfq

подходит, но я в потоке и просто делаю waitforfinished(-1);

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