将QIODevice与匿名管道一起使用

时间:2018-05-13 18:48:50

标签: windows qt pipe qiodevice anonymous-pipes

如果数据可用,我想使用QIODevice来读取未命名的管道。 我用QFile尝试了这个:

response.css('td.xyz::text').extract()[-1]

“原始”管道本身有效,我可以从中读取数据。 但是,在测试期间,readyRead()永远不会发出信号:

m_pFile_Pipe = new QFile();
HANDLE hRead, hWrite;
connect(m_pFile_Pipe, SIGNAL(readyRead()), this, SLOT(OutputAvailable_QFile()));

SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;

CreatePipe(&hRead, &hWrite, &sa, 0);
auto fhRead = _open_osfhandle((intptr_t)hRead, _O_RDONLY);
auto OpenResult = m_pFile_Pipe->open(fhRead, QIODevice::ReadOnly);

NumBytes始终为0,canReadLine()始终返回false,并且readAll()未返回。 ReadFile()可以读取预期的数据。

是否有QOIDevice用于匿名管道? Qt文档说QLocalSocket将用于命名管道,但我没有找到任何关于匿名管道的信息。

0 个答案:

没有答案