addr = mremap(addr, 100 * 4096, 40 * 4096, 0);
assert(addr != (void *)-1);
+ int rmid = shmctl(shmid, IPC_RMID, NULL);
+ assert(rmid == 0);
+
return 0;
}
addr = mremap(addr, 100 * 4096, 400 * 4096, MREMAP_MAYMOVE);
assert(addr != (void *)-1);
+ int rmid = shmctl(shmid, IPC_RMID, NULL);
+ assert(rmid == 0);
+
return 0;
}
#include <sys/stat.h>
#include <sys/mman.h>
+static int shmid;
+
static void *mkmap(unsigned sz)
{
- int shmid = shmget(IPC_PRIVATE, sz,
- IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);
+ shmid = shmget(IPC_PRIVATE, sz,
+ IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);
assert(shmid != -1);
void *addr = shmat(shmid, NULL, 0);
int main()
{
void *np, *p;
-
+
p = mkmap(1024*1024);
np = mremap(p, 1024*1024, 2048*1024, MREMAP_MAYMOVE); /* grow, maymove */
assert(np != (void *)-1);
+ int rmid = shmctl(shmid, IPC_RMID, NULL);
+ assert(rmid == 0);
+
return 0;
}