mremap
#define _GNU_SOURCE
#include <sys/mman.h>
void *mremap(void *old_address, size_t old_size, size_t new_size, int flags,
... /* void *new_address */);#define _GNU_SOURCE
#include <stdio.h>
#include <sys/mman.h>
#define BUF_SIZE 4096
int main(int argc, char *argv[])
{
char *buf;
buf = mmap(NULL, BUF_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
buf[0] = 0x11;
printf("buf[0] 0x%x\n", buf[0]);
buf = mremap(buf, BUF_SIZE, BUF_SIZE * 2, MREMAP_MAYMOVE);
if (buf == MAP_FAILED) {
printf("MAP FAILED\n");
return -1;
}
buf[4096] = 0x12;
printf("buf[4096] 0x%x\n", buf[4096]);
munmap(buf, BUF_SIZE * 2);
return 0;
}Last updated