Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.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++ 我可以将mmap的结果存储为整数吗?_C++_Linux - Fatal编程技术网

C++ 我可以将mmap的结果存储为整数吗?

C++ 我可以将mmap的结果存储为整数吗?,c++,linux,C++,Linux,我正在使用mmap,我有如下代码: void* mappedRegion; mappedRegion = mmap( 0, 8192, PROT_READ| PROT_WRITE, MAP_SHARED, fd, 0 ); C++中的P>是一个空指针,正确的方法是这样做吗?为什么我们需要一个空指针呢?mmap不只是返回新映射的地址吗?int32能处理吗?是的,这是正确的方法,我们需要一个void*,因为这是mmap返回的 是的,返回值只是一个指针,但不能保证int32_t在重新解释后能够保存

我正在使用mmap,我有如下代码:

void* mappedRegion;

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

C++中的P>是一个空指针,正确的方法是这样做吗?为什么我们需要一个空指针呢?mmap不只是返回新映射的地址吗?int32能处理吗?

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

是的,返回值只是一个指针,但不能保证int32_t在重新解释后能够保存它

顺便说一句:您需要将其转换为适当的类型,以便以后存储对象,因为指针算法在不完整的类型上是不可能的

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


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

mmap返回一个void*,因此无论您使用何种语言,这都是您在这里需要的。当然,void*可能是64位,因此使用较短的整数类型将是一个非常糟糕的主意。如果您希望portable codemmap不是C++11的东西,则不能假设返回的地址是固定位。好的,谢谢,我想知道是否应该以某种方式使用C++11 auto。在这种情况下,我真的不会这样做,尽管这不会造成伤害。