如果您有兴趣的动机生病阐述其在接下来的几个句子,如果不只是跳到Q.
我在想做出快速记录器,但是当程序崩溃(又名最后几个日志封邮件的arent丢失)是不会受到影响的人。 所以我的想法是写共享内存(ringbuffer),并有从中读取另一个低PRIO过程并做倾销。 但对于工作,我需要知道发生了什么共享内存,如果一个进程退出(正常退出,段错误)...
所以我的问题是:会发生什么事到共享内存(在Linux中,但可以用于运也),当特效的一个管? 难道UB?
如果您有兴趣的动机生病阐述其在接下来的几个句子,如果不只是跳到Q.
我在想做出快速记录器,但是当程序崩溃(又名最后几个日志封邮件的arent丢失)是不会受到影响的人。 所以我的想法是写共享内存(ringbuffer),并有从中读取另一个低PRIO过程并做倾销。 但对于工作,我需要知道发生了什么共享内存,如果一个进程退出(正常退出,段错误)...
所以我的问题是:会发生什么事到共享内存(在Linux中,但可以用于运也),当特效的一个管? 难道UB?
会发生什么到共享内存(在Linux中,但可以用于运也),当特效的一个管?
没有。 当一个进程死亡,共享存储器被留下,因为它是。 它被映射为下文件/dev/shm/
目录。 它被删除或者当系统重新引导时,或者当所有进程unmmap共享存储器文件和shm_unlink()
被调用。
难道UB?
不,这是很好的定义。 见的shm_overview(7)手册页 :
POSIX共享内存对象具有内核的持久性:共享内存对象会存在,直到系统关闭,或直到所有的进程有未映射的对象,并将其已经用shm_unlink删除(3)
阅读提高IPC机制,他们解释有关共享内存的持久性概念。
http://www.boost.org/doc/libs/1_53_0/doc/html/interprocess/some_basic_explanations.html#interprocess.some_basic_explanations.persistence
如果使用文件为后盾,为mmap
,一切都交给最后msync
,或munmap
如果进程退出不当,将提供给独立的进程。
所以,应该有与共享内存没有问题,当一个进程崩溃。