Почему системные вызовы возвращают EFAULT вместо отправки segfault?

Чтобы было ясно, это вопрос дизайна, а не реализации.

Я хочу знать, почему POSIX ведет себя таким образом. Системные вызовы POSIX при указании недопустимой области памяти возвращают EFAULT, а не приводят к сбою программы пользовательского пространства (путем отправки sigsegv), что делает их поведение несовместимым с функциями пользовательского пространства.

Почему? Разве это не просто скрывает ошибки памяти? Это историческая ошибка или на то есть веская причина?

10
задан Geoffroy 7 March 2012 в 23:34
поделиться