共享内存函数 CreateFileMapping MapViewOfFile OpenFileMapping

windows下创建共享内存后,程序内部手动释放,关闭程序后,创建的共享内存会自动释放吗?

共享内存函数 CreateFileMapping MapViewOfFile OpenFileMapping

第1个回答  2011-03-17
共享内存返回的句柄计数器为零时且该内存不再被调用,系统才会自动释放;你在程序内部手动释放时会将该句柄的计数器减1,为零时释放;
建议手动释放以免内存泄漏
第2个回答  2011-03-17
即使程序没有释放,Windows系统会自动回收的。追问

为什么linux不是这样呢,linux下如果不手动释放的话,不关机永远都在的。在windows下能不能不回收啊。

追答

这个是操作系统设计的思想问题,各有各的好处。所以我们没法控制

本回答被提问者采纳
第3个回答  2011-03-17
最好还是自己写程序的时候释放。。
因为这是一种习惯问题。。。
有些像C或C++中如果某些指针忘记释放或者说释放后没有置空
这些都是很危险的。。。
不小心就会使你的程序崩溃
严重点就系统崩溃追问

为什么linux不是这样呢,linux下如果不手动释放的话,不关机永远都在的。能不能不回收啊。