Test ukazatele (Re: KOMPILACE, GCC PODRUHE)
peak na kerberos.troja.mff.cuni.cz
peak na kerberos.troja.mff.cuni.cz
Středa Srpen 13 17:21:26 CEST 1997
On Wed, 13 Aug 1997, Zdenek Pizl, Czech Agriculture University, Prague wrote:
> lze nejak v programu zjistit, ze pointer ukazuje mimo muj adresni prostor
> ?? Samozrejme tak aby to program prezil bez SIGSEGV apod.
#include <signal.h>
static int addr_ok;
static void segv_handler()
{ addr_ok = 0; }
int test_ptr(char *ptr)
{
char x;
struct sigaction new_sa, old_sa;
new_sa.sa_handler = &segv_handler;
sigemptyset(&new_sa.sa_mask);
new_sa.sa_flags = 0;
addr_ok = 1;
sigaction(SIGSEGV, &new_sa, &old_sa);
x = *ptr;
sigaction(SIGSEGV, &old_sa, NULL);
return addr_ok;
}
(nezkousel jsem to v praxi, ale melo by to fungovat)
--Pavel Kankovsky aka Peak (troja.mff.cuni.cz network administration)
Další informace o konferenci Linux