求人看一小段C++代码

kannju 2011-07-22 12:04:25
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是什么关系?

求解答谢谢
...全文
65 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧