detach共享内存时,如果shmdt函数返回失败的处理,求教!

dingxd319 2015-08-20 07:57:34
detach共享内存时,如果shmdt函数返回失败,错误码=22,后面还需要调用sem_close去关闭信号量吗!
函数原型如下:
if (shmdt(schedule_shm_info.addr) == -1)
{
CORE_SCHBLD_PRINT_ERR(" detach error \n");
return; //此处需要返回吗?
}

if (sem_close(schedule_shm_info.shm_rw_sem) != 0)
{
CORE_SCHBLD_PRINT_ERR("sem_close failed!\n");
}
错误=22,是不是表示这个共享内存之前已经断开过,不需要再断开了?那么后面也不能调用sem_close去关闭信号量了,因为之前已经关闭过了?
...全文
202 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxianbin 2015-08-24
  • 打赏
  • 举报
回复
不知道你的detach 和信号量有什么关系,又不是读写共享内存
dingxd319 2015-08-23
  • 打赏
  • 举报
回复
求高手指点一下啊

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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