问题遇到的现象和发生背景
在高通8155平台下,qnx700系统下做开发,使用了mmap接口对一个1.3G文件的文件进行映射,报not enough memory错误,TOP指令显示系统可用内存未1167M
操作环境、软件版本等信息
QNX700
尝试过的解决方法
```c
/*
* Map a file (from fd's current offset) into a shared, read-only memory
* segment. The file offset must be a multiple of the page size.
*
* On success, returns 0 and fills out "pMap". On failure, returns a nonzero
* value and does not disturb "pMap".
*/
int sysMapFileInShmem(int fd, MemMapping* pMap)
{
off_t start;
size_t length;
void* memPtr;
assert(pMap != NULL);
if (getFileStartAndLength(fd, &start, &length) < 0)
return -1;
memPtr = mmap(NULL, length, PROT_READ, MAP_FILE | MAP_SHARED, fd, start);
if (memPtr == MAP_FAILED) {
LOG_WARN("mmap(%d, R, FILE|SHARED, %d, %d) failed: %s\n", (int) length,
fd, (int) start, strerror(errno));
return -1;
}
pMap->baseAddr = pMap->addr = memPtr;
pMap->baseLength = pMap->length = length;
return 0;
###### 我想要达到的结果
mmap理论上讲不占用物理内存,不应该报内存不足
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/bd5c38141afa4147a00579bdbb8d0c74.png "#left")