Есть переполненная файловая система. Свободного места нуль. Я могу создавать новые файлы, но записывать в них информацию — уже нет.
Я делаю в этой файловой системе файл fd, например, с помощью mkstemp. Потом я выполняю ftruncate (fd, getpagesize()). Наконец, mmap'лю этот файл в адресное пространство процесса. Все эти функции выполняются вроде как без ошибок, все правильно. Возвращают корректные значения.
При попытке записать что-то в эту память, указатель на которую получена функцией mmap, программа вылетает. Bus error.
Если программа вылетает, это значит, что в программе ошибка? Не может же хорошая программа вылетать только из-за того, что где-то там на файловой системе закончилось место… Я проверяю все значению, все функции выполняются правильно, никаких ошибок, я не хочу чтобы моя программа вылетала…
Объясните, пожалуйста, так и должно быть? Или такой ситуации можно как-то избежать? Или это ошибка в системе, может быть?
mmap