什么是与C ++等效的mmap ?
LCDdata = mmap(NULL,iFrameBufferSize,PROT_READ | PROT_WRITE,MAP_FILE | MAP_SHARED,fb_fd,0);
LCDdata是unsigned char pointer , iFrameBufferSize是inttypes, fb_fd是static inttypes。
当我通过使用arm g++工具链编译它时,它给我错误,如下所示
qDebug()在Windows上不支持unicodestring
在Ubuntu上使用GLFW设置OpenGL NetBeans项目
打开其他应用程序后,在后台维护TCP连接8
使用opencv从帧创build一个divx编码的AVI
如何在Qt层次结构的根部件中获取鼠标按下的事件
error: invalid conversion from 'void*' to 'unsigned char*' [-fpermissive]
那么如何使用任何等效types的函数而不是mmap呢?
什么时候会eventfd_read()阻止?
针对Windows上的Linux进行交叉编译(链接器输出文件不会在Linux上以可执行文件的forms运行,并且具有未定义的符号)
检查close()中的错误的原因是什么?
如何在Windows 8和10中枚举已安装的StoreApps及其ID
C ++等价于auto LCDdata = static_cast<unsigned char*>(mmap(...
在C ++中,我们倾向于只在初始化变量时才定义变量,因此我们通常不需要再指定类型。 在这里,我们不需要重复unsigned char* 。
C允许将void*分配给任何类型的指针而不用强制转换。 C ++没有。 C程序员已经抱怨了这么久( malloc是最常见的抱怨),但它不太可能改变。
解决方案是添加演员。 如果源代码需要编译为C,则使用C风格的类型:
LCDdata = (unsigned char*)mmap(...);
否则使用C ++强制转换
LCDdata = static_cast<unsigned char*>(mmap(...));
如果你想做更激烈的事情,你可以看看Boost Interprocess 。 那会给你RAII的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。