求人看一小段C++代码

kannju kannju 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1)size_t const kPageSize = sysconf(_SC_PAGESIZE);
2)size_t const kAlign = kPageSize > size_t(inBufferSize) ?kPageSize : size_t(inBufferSize);
3)mAllocSize = size_t(inNumBuffers) * inBufferSize + kAlign;
4)mAllocSize = (mAllocSize + kPageSize - 1) / kPageSize * kPageSize;
5)mAllocPtr = mmap(0, mAllocSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
6)mStartPtr = 0;
7)mStartPtr += (((char*)mAllocPtr - (char*)0) + kAlign - 1) /kAlign * kAlign;

这是一段关于内存申请分配的代码(分配inNumBuffers个大小为inBufferSize的连续内存空间),
第4句是为了页面对齐的话,第3句中加kAlign是为了什么?另外mStartPtr是指向什么位置?跟mAllocPtr是什么关系?

求解答谢谢
...全文
评论 6
收藏 已收藏
分享
返回顶部
kannju
C++ 语言 65,214 成员 250,514 内容