ОС (POSIX) очищает файл, отображенный в памяти, если процесс SIGKILLed? - PullRequest
13 голосов
/ 14 мая 2009

Если процесс завершается с помощью SIGKILL, будут ли изменения, внесенные в файл с отображением в памяти, записаны на диск? Я предполагаю, что если ОС гарантирует, что отображенный в памяти файл будет сброшен на диск, когда процесс будет завершен с помощью SIGKILL, то он также сделает это с другими завершающими сигналами (SIGABRT, SIGSEGV и т. Д.).

Ответы [ 2 ]

16 голосов
/ 14 мая 2009

Это будет зависеть от того, открыт ли отображенный в память файл с изменениями private (MAP_PRIVATE) или нет (MAP_SHARED). Если личное, то нет; изменения не будут записаны обратно на диск. При совместном использовании буферный пул ядра содержит измененные буферы, и они будут записаны на диск в нужное время - независимо от причины смерти.

0 голосов
/ 02 июня 2011

Я сам задал похожий вопрос, а затем добавил код демонстрации, когда не был удовлетворен ответами. См. mmap, msync и linux завершение процесса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...