求人看一小段C++代码
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是什么关系?
求解答谢谢
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是什么关系?
求解答谢谢
...全文
相关推荐
cpp代码-C++基础
cpp代码-C++基础
33个c++重要知识总结(cpp代码)
c++基础知识复习,包含了33个cpp文件,每个文件包含特定主题的知识回顾,使用特定案例重温某些不常用但是重要的算法或函数的使用方法,含注释。
C++实现的Fins库文件源代码 FinsLib_CPP.zip
C++实现的Fins库文件源代码,可以集成到自己的应用中与欧姆龙PLC通信
C++ .h和.cpp文件总结
总结了.h文件能做什么,.cpp文件能做什么,总结了.h文件的本质,方便新手在遇到文件包含、类型声明、变量定义时能理清.h与.cpp关系,纯属个人总结文档。
最大子段和/三种方法/c++
最大子段和/三种方法/c++语言/(内有报告) 蛮力法,动态规划法,分治法。 可比较时间,随机输入数据......


