mmap
типа нормально
> в каком месте делается unmap и тому подобные вещи?
В sys_exit смотрел?
Такое поведение где-то документировано?
> В sys_exit смотрел?
Смотрел. sys_exit вызывает do_exit, а тот exit_files. Я почему-то был уверен что это там, но там этого не оказалось. Ладно, пойду смотреть дальше. Спасибо.
все, нашел. функция exit_mmap. уже торможу под вечер.
кусок мана, где про это вскользь упомянуто:
The munmap system call deletes the mappings for the specified address range, and causes further references to
addresses within the range to generate invalid memory references. The region is also automatically unmapped when
the process is terminated. On the other hand, closing the file descriptor does not unmap the region.
Thanx.
Оставить комментарий
Landstreicher
Если я открою файл, сделаю на него mmap, потом закрою, а потом буду работать с замапленой областью - что произойдет? Я думал что процессу пошлют SIGSEGV (файл-то уже закрыт). Практика показывает, что всем пофигу - как был файл замаплен, так и остается, делай с ним чего хочешь.1) Это нормально явление или бага?
2) Если так должно быть, то в каком месте делается unmap и тому подобные вещи? Кто-то ведь должен все это отмапить по завершении процесса.
PS. OS = Linux 2.4