1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
int rd_section(int file_desc, Elf32_Ehdr *header)
{
Elf32_Shdr *section;
void *buffer;
struct stat mystat;
if (fstat(file_desc, &mystat) != 0)
return (-1);
#if defined (__sun)
buffer = mmap((caddr_t)0, mystat.st_size, PROT_READ, MAP_PRIVATE, file_desc,
header->e_shoff - (header->e_shoff%getpagesize()));
#else
buffer = mmap((caddr_t)0, mystat.st_size, PROT_READ, MAP_FILE, file_desc,
header->e_shoff);
#endif
if ((int)buffer == -1)
{
printf("errno : %d\n", errno );
perror("mmap");
return (-1);
}
section = buffer; |
Partager