SIGSEGV is just another signal, it's quite possible to use it to create an error and catch it.
That it's _normally_ used as a symptom of a badly written program doesn't make it less useful.
In the case of mmap it's quite possible to use it in Pike to catch unexpected file errors.
If the user have access to mmap I think the user can have access to telling what SIGSEGV should do, too. :)