¿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?