如果数据可用,我想使用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将用于命名管道,但我没有找到任何关于匿名管道的信息。