¿Cómo puedo prevenir (no reaccionar a) una falla de segmentación?

No estoy tratando de manejar una falla de segmentación. Entiendo cómo funciona el manejo de excepciones, más o menos. Preferiría no tener la culpa en primer lugar. Lo que quiero hacer es llamar a una función o realizar una operación que devuelva un valor que me diga si se puede acceder o no a esa ubicación / bloque de memoria en particular, sin tener que acceder a ella y obtener la falla.

Es decir, me gustaría que una función C probara una dirección en Linux y / o Mac OS X antes de acceder a ella. Algo como:

result = probe_memory(address,length)

donde el resultado es

 0 = writable
 1 = read-only
-1 = nonexistent

O algo por el estilo.

¿Hay algo así en Linux y / o Mac OS X?

Respuestas a la pregunta(3)

Su respuesta a la pregunta