michile

导航

控制和释放共享内存块

调用shmctl("SHared Memory ConTroL",控制共享内存)函数会返回一个共享内存
块的相关信息。同时shmctl允许程序修改这些信息。该函数的第一个参数是一个共享内存
块标识。
要获取一个共享内存块的相关信息,则为该函数传递  IPC_STAT  作为第二个参数,同
时传递一个指向一个struct shmid_ds对象的指针作为第三个参数。
要删除一个共享内存块,则应将IPC_RMID作为第二个参数,而将NULLL作为第三
个参数。当最后一个绑定该共享内存块的进程与其脱离时,该共享内存块将被删除。
你应当在结束使用每个共享内存块的时候都使用shmctl进行释放,以防止超过系统所
允许的共享内存块的总数限制。调用exit和exec会使进程脱离共享内存块,但不会删除
这个内存块。

posted on 2013-02-06 22:10  michile  阅读(485)  评论(0编辑  收藏  举报