ExitProcess和内存的问题
小弟我最近在改一个程序,发现该程序在退出程序时都只简单调用了exitprocess。
我想问一下,malloc、CreateFileMapping、MapViewOfFile、InitializeCriticalSection申请的资源会不会自动被释放。
我的理解是,malloc是从进程的堆内存申请的,它会随着进程的内存的释放而释放了。
CreateFileMapping是用CloseHandle关闭的,ExitProcess会关闭它的所有Handle,因此也没问题。
MapViewOfFile就不知道了,但是我试了一下,好像可用内存并没有减少。不过如果一个程序MapViewOfFile同一个handle几百次程序的内存占用会大大的增加。
InitializeCriticalSection申请的是系统资源,不知道会不会随着ExitProcess自动释放?
这些都是我的理解,还希望各位给出正解。
还有一个问题,我发现程序里边只用了InitializeCriticalSection,为什么我用BoundsChecker调了一下,他说有若干个InitializeCriticalSectionAndSpinCount 泄漏呢,不明白。
还有就是线程里边用ExitProcess和进程里边调用ExitProcess有什么区别。
还有就是多个进程不加锁的访问(读写)同一个比较小的共享内存会不会发生异常或者失败(不考虑未同步产生的异常)??
不同线程和主进程不加锁的访问(读写)全局变量比如数组会不会发生异常或者失败??