我可以将mmap的结果存储在整数中吗?

时间:2014-09-18 09:56:17

标签: c++ linux

我正在使用mmap,我有这样的代码:

void* mappedRegion;

mappedRegion = mmap( 0, 8192, PROT_READ| PROT_WRITE, MAP_SHARED, fd, 0 );

在C ++中是一个void指针正确的方法吗?为什么我们无论如何都需要一个void指针? mmap只是返回新映射的地址? int32_t会处理吗?

2 个答案:

答案 0 :(得分:3)

是的,这是正确的方式,我们需要一个void*,因为mmap返回的是什么。

是的,返回值是"只是"指针,但无法保证int32_t能够在重新解释后保留它。

BTW:您需要将其转换为适当的类型以便稍后存储您的对象,因为在不完整的类型上无法使用指针算法。

答案 1 :(得分:1)

  

不是mmap只返回新映射的地址吗?

地址是指针,而不是整数。