我正在将Raspberry Pi 3B的一些C代码转换为C ++。这部分C代码,
// Open /dev/mem
if ((p->mem_fd = open("/dev/mem", O_RDWR|O_SYNC) ) < 0) {
printf("Failed to open /dev/mem, try checking permissions.\n");
return -1;
}
p->map = mmap(
NULL,
BLOCK_SIZE,
PROT_READ|PROT_WRITE,
MAP_SHARED,
p->mem_fd, // File descriptor to physical memory virtual file '/dev/mem'
p->addr_p // Address in physical map that we want this memory block to expose
);
提出了挑战。当前的问题是C open函数返回的文件描述符。 C ++使用fstream,它将用于打开文件,但是当我到达C函数mmap时,我没有文件描述符。
mmap将文件映射到内存中。
这是一个学习实验,我想坚持使用C ++。
它确实让人想起一个问题。 RPi OS,Raspbian,内置了所有这些C函数。它是否内置了C ++等价物,或者是否期望使用C函数和extern "C"
语句?
答案 0 :(得分:-1)
您可以使用boost::interptocess
我很好奇你在c ++代码中使用mmap的问题是什么?