Linux sem_destroy()文档说:
在释放未命名信号量所在的内存之前,应使用sem_destroy()销毁未命名信号量。如果不这样做,可能会导致某些实现上的资源泄漏。我有一个进程负责在共享内存( mmaped文件)上创建和销毁信号量,如何避免异常终止条件下的资源泄漏?在Linux上,如果在调用sem_destroy()之前删除mmaped文件,是否有任何资源泄漏?什么资源?
因此,下面的程序访问位于"shmid“位置的一块共享内存,并将其附加到指针”total“。然后创建一个子进程来访问和修改这段内存,一旦完成,就创建另一个子进程并执行相同的操作,然后创建第三个子进程。一旦这3个子进程完成了值的修改和执行,父进程就会释放共享内存,然后程序就会退出。我的印象是这个"shmctl“代码块会达到预期的效果,但似乎并非如此。这不是表明指针仍在访问相同的内存位吗,还是我弄错了?
printf("value after m