map_unaligned.c revision cbdddcfb32883a37e873907602d34bac523e3ead
1#include <stdio.h> 2#include <stdlib.h> 3#include <sys/mman.h> 4 5int main(int argc, char **argv) 6{ 7 void *p1; 8 void *p2; 9 10 if ( ( p1 = mmap( 0, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED ) 11 { 12 perror( "mmap" ); 13 exit( 1 ); 14 } 15 16 if ( munmap( p1, 4096 ) != 0 ) 17 { 18 perror( "munmap" ); 19 exit( 1 ); 20 } 21 22 if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED ) 23 { 24 perror( "mmap" ); 25 exit( 1 ); 26 } 27 28 if ( munmap( p2, 4096 ) != 0 ) 29 { 30 perror( "munmap" ); 31 exit( 1 ); 32 } 33 34 if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0 ) ) == MAP_FAILED ) 35 { 36 perror( "mmap" ); 37 exit( 1 ); 38 } 39 40 if ( munmap( p2, 4096 ) != 0 ) 41 { 42 perror( "munmap" ); 43 exit( 1 ); 44 } 45 46 exit( 0 ); 47} 48