当前位置: 技术问答>linux和unix
可以用free来释放共享内存吗?
来源: 互联网 发布时间:2015-10-12
本文导语: 小弟我最近在学UNIX下的C编程,现在在看共享内存的部份。 共享内存一般用shmget创建,用shmat连接到进程,用shmdt脱开到进程的连接,用shmctl来设置和删除。 那么可不可以用free来释放共享内存吗? 比...
小弟我最近在学UNIX下的C编程,现在在看共享内存的部份。
共享内存一般用shmget创建,用shmat连接到进程,用shmdt脱开到进程的连接,用shmctl来设置和删除。 那么可不可以用free来释放共享内存吗?
比如使用shmat得到共享内在的映射指针,再用free函数通个这个指针来释放共享内存。
可以这么做吗?如果这么做了会有什么后果呢?请各位大侠指点,小弟谢过先
共享内存一般用shmget创建,用shmat连接到进程,用shmdt脱开到进程的连接,用shmctl来设置和删除。 那么可不可以用free来释放共享内存吗?
比如使用shmat得到共享内在的映射指针,再用free函数通个这个指针来释放共享内存。
可以这么做吗?如果这么做了会有什么后果呢?请各位大侠指点,小弟谢过先
|
free是针对动态的内存分配的,malloc()。
而共享内存是进程间的通讯机制的一种,两个概念。
而共享内存是进程间的通讯机制的一种,两个概念。
|
用free不安全!
free不会对该内存段的联接计数进行监测.
free不会对该内存段的联接计数进行监测.
|
不行。
|
当然不行了。
|
同一楼上观点,free对共享内存无效。
|
请问老弟wl820406你看的是哪儿本书?我现在也想学习如何用工想内存呢。用shmget创建,用shmat连接到进程,用shmdt脱开到进程的连接,用shmctl来设置和删除,用这几个函数应该注意哪儿些地方啊,请指点一二。
|
不可以free
|
只能说,会产生未知的结果。
|
那用什么?