Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在MacOS和IOKit上实现USB读取超时_C++_Macos_Usb_Iokit - Fatal编程技术网

C++ 在MacOS和IOKit上实现USB读取超时

C++ 在MacOS和IOKit上实现USB读取超时,c++,macos,usb,iokit,C++,Macos,Usb,Iokit,我正在尝试为我的应用程序实现USB驱动程序。看起来,所有主要功能,如初始化、读写,都可以使用IOKit轻松实现。但我所面临的问题是读取超时,更确切地说是缺少该功能 实际上,我使用教程来创建我的USB驱动程序 例如,我的阅读代码如下所示: QByteArray Read(UInt32 size) { IOReturn result; char buffer[size]; result = (*m_interface)->ReadPipe(m_interface, m

我正在尝试为我的应用程序实现USB驱动程序。看起来,所有主要功能,如初始化、读写,都可以使用IOKit轻松实现。但我所面临的问题是读取超时,更确切地说是缺少该功能

实际上,我使用教程来创建我的USB驱动程序

例如,我的阅读代码如下所示:

QByteArray Read(UInt32 size)
{
    IOReturn result;
    char buffer[size];

    result = (*m_interface)->ReadPipe(m_interface, m_pipeIn, buffer, &size);
    if(result != kIOReturnSuccess)
    {
        SetError("Error reading from pipe", IErrorrable::ErrorTypes::Error, result);
        return QByteArray();
    }
    return QByteArray(buffer, size);
}

我不知道如何实现这个函数的读取超时。如果有人能帮忙,我将不胜感激。

使用
ReadPipeTO
功能,而不是
ReadPipe
。还有一个异步版本,
ReadPipeAsyncTO
,可能会引起人们的兴趣


您可能需要请求比您当前使用的更新版本的
iBinterfaceInterface
,但这不是问题,因为大多数人从PPC时代就开始使用OS X版本了。

谢谢@pmdj!这正是我需要的。