Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Apr 2012 00:25:32 +0530
From:      Maninya M <maninya@gmail.com>
To:        freebsd-hackers@freebsd.org
Subject:   mmap segmentation fault
Message-ID:  <CAC46K3=LbSYFqCPSXO%2BwhZK6mpTwW9YQXWDqq5UwBzPQGAFeVg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hello,
I want to allocate memory at a specified address location 'a' of size 'b'.
I wrote code below to do it, but I'm getting a seg fault. How can I solve
this?
How can I get the allocated memory at the required address?

int main()
{
unsigned int *addr,*newaddr;
unsigned long a=134516736,a1;
unsigned long b=3895296;
unsigned long flags =6;
a1=(a&0xffff0000);
printf("%x\n",(void *)a);
newaddr=(unsigned int *)mmap((void *)a,b,6,MAP_ANONYMOUS|MAP_FIXED,-1,0);

if(newaddr==MAP_FAILED)
printf("mmap failed");
else
printf("sucess %x",newaddr);
return 0;
}


Output is
8049000
Segmentation fault


-- 
Maninya



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAC46K3=LbSYFqCPSXO%2BwhZK6mpTwW9YQXWDqq5UwBzPQGAFeVg>