|
我使用ACE_Mem_Map 创建新内存映射文件,然后写入数据,关闭ACE_Mem_Map,因为我是网络接收大量小图片文件,所以在接收到400个左右就出现 unable to register client handler: Too many open files 错误!
关键代码如下,请大家帮忙看看什么原因:
delete pMapPicture;
pMapPicture = NULL;
pMapPicture = new ACE_Mem_Map;
int nret = pMapPicture->map((const ACE_TCHAR *)picName
,pictureLength
,O_RDWR | O_CREAT
,ACE_DEFAULT_FILE_PERMS
,PROT_RDWR,ACE_MAP_SHARED);
/* 拷贝数据*/
pMapPicture->sync();
pMapPicture->unmap();
pMapPicture->close_filemapping_handle();
pMapPicture->close();
delete pMapPicture;
pMapPicture = NULL;
循环执行上面代码!
几百次后就出现 unable to register client handler: Too many open files 错误,我哪里错了? |
|