Я хочу, чтобы не сбрасывать определенную информацию из моей программы в основной файл в случае любого сбоя.Избегайте сброса информации в основной файл
Для этого можно использовать coredump_filter (http://man7.org/linux/man-pages/man5/core.5.html)
Страница человек обеспечивает следующее описание
Значение в файле является битовой маской типов отображения памяти (см ММАП (2)). Если бит установлен в маске, то сопоставления памяти соответствующего типа сбрасываются; в противном случае они не сбрасываются. В битах в этом файле имеют следующие значения:
bit 0 Dump anonymous private mappings.
bit 1 Dump anonymous shared mappings.
bit 2 Dump file-backed private mappings.
bit 3 Dump file-backed shared mappings.
bit 4 (since Linux 2.6.24)
Dump ELF headers.
bit 5 (since Linux 2.6.28)
Dump private huge pages.
bit 6 (since Linux 2.6.28)
Dump shared huge pages.
Я ищу, чтобы узнать, какой бит для установки и сброса в моем случае. Я не совсем понимаю, что эти поля специально частные и общие.
У меня есть буфер (unsigned char *) в памяти. Я не хочу сбрасывать это в основной файл в случае любого сбоя. Есть ли какой-либо конкретный флаг, который я должен использовать для mmap? Пожалуйста помоги. Заранее спасибо.
Ни один из этих бит не поможет вам отфильтровать ваш буфер специально. Например, они могут отфильтровать * всю * частную память, но тогда вы, вероятно, так же хорошо, как и не сбрасываете ядро. – Dolda2000
Итак, вы имеете в виду, что нет способа фильтровать буфер, который нужно сбросить в основной файл. – ank
Не использовать 'coredump_filter', по крайней мере, но это не значит, что это невозможно. У меня есть лидерство, о котором я напишу ответ. – Dolda2000