Home | History | Annotate | Download | only in linux
      1 #define _GNU_SOURCE
      2 #include <stdio.h>
      3 #include <stdlib.h>
      4 #include <assert.h>
      5 #include <sys/ipc.h>
      6 #include <sys/shm.h>
      7 #include <sys/stat.h>
      8 #include <sys/mman.h>
      9 
     10 static void *mkmap(unsigned sz)
     11 {
     12   int shmid = shmget(IPC_PRIVATE, sz,
     13                      IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);
     14   assert(shmid != -1);
     15 
     16   void *addr = shmat(shmid, NULL, 0);
     17   assert(addr != (void *)-1);
     18 
     19   return addr;
     20 }
     21 
     22 int main()
     23 {
     24   void *np, *p;
     25 
     26   p  = mkmap(1024*1024);
     27   np = mremap(p, 1024*1024, 2048*1024, MREMAP_MAYMOVE); /* grow, maymove */
     28   assert(np != (void *)-1);
     29 
     30   return 0;
     31 }
     32