द्वारा संसाधित की जाती है, माता-पिता प्रक्रिया स्ट्रिंग "Message\n"
को बाल प्रक्रिया stdin पर लिखती है। लेकिन बाल प्रक्रिया इसे प्राप्त नहीं करती है। कोड में समस्या कहां है?बाल प्रक्रिया stdin को डेटा प्रक्रिया नहीं मिलती है, जो मूल प्रक्रिया
क्यूटी 4.7.3
जनक प्रक्रिया कोड:
// class TestParent : public QMainWindow
void TestParent::createChildProcess()
{
childProcess = new QProcess(this);
connect(childProcess, SIGNAL(started()),
this, SLOT(childProcessStarted()));
connect(childProcess, SIGNAL(bytesWritten(qint64)),
this, SLOT(bytesWritten(qint64)));
childProcess->start("TestChild.exe", QProcess::ReadWrite);
}
void TestParent::writeToChildProcessOutput()
{
qint64 bytesWritten = childProcess->write("Message\n");
qDebug() << "ret: " << bytesWritten << " bytes written";
}
void TestParent::bytesWritten()
{
qDebug() << "slot: " << bytesWritten << " bytes written";
}
बाल प्रक्रिया कोड:
// class TestChild : public QMainWindow
void TestChild::TestChild()
// QFile TestChild::input;
connect(&input, SIGNAL(readyRead()),
this, SLOT(readInput()));
input.open(0, QIODevice::ReadOnly); // stdin
}
void TestChild::readInput()
{
QString line;
line.append('(');
line.append(QString::number(input.bytesAvailable()))
line.append(')');
line.append(input.readAll());
list.append(line); // add line to QListView
}
है एक QProcess टेस्ट चाइल्ड? और इनपुट एक QIODevice है, उपclass नहीं है? – Chris
@ क्रिस: नहीं, टेस्ट चाइल्ड - बाल प्रक्रिया की मुख्य विंडो वस्तु। मूल प्रक्रिया में हम 'childProcess' ऑब्जेक्ट का उपयोग करके बच्चे को बनाते हैं। मेरी गलती: 'इनपुट' QFile है, धन्यवाद। –