我正在使用 编写一些 C 代码IOKit
,并且需要使用IOMemoryDescriptor
方法。不幸的是,我只能编译纯 C 源代码,那就是 C++ 类。所以,我问是否有一些 C 接口可以让我执行相同的操作。
具体来说,我想要一个几乎可以做到这一点的函数,但可以编译为 C:
#include <IOKit/IOMemoryDescriptor.h>
extern "C" void CopyOut(mach_vm_address_t src, void *dst, size_t size)
{
IOMemoryDescriptor *memDesc;
memDesc = IOMemoryDescriptor::withAddressRange(src, size, kIODirectionOut, current_task());
// Error checking removed for brevity
memDesc->prepare();
memDesc->readBytes(0, dst, size);
memDesc->complete();
memDesc->release();
}