求mremap用法
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <linux/mman.h>int main(int argc, char **argv){ void *s,*x; x=malloc(8); s=(void *)mremap(x,8,8,0); return 0;}#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <linux/mman.h>int main(int argc, char **argv){ void *s,*x; x=malloc(8); s=(void *)mremap(x,8,8,0); perror("mremap"); printf("old 0x%x new 0x%x\n",x,s); return 0;}
[解决办法]
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <linux/mman.h>int main(int argc, char **argv){ void *s,*x; x=malloc(8192); x = (unsigned int )x + 0x1000; x = (unsigned int )x & 0xfffff000; s=(void *)mremap(x,4000,8,0); perror("mremap"); printf("old 0x%x new 0x%x\n",x,s); return 0;}