求mremap用法
- C/C++ code
#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; }
为什么我的mremap函数总是返回-1呢?
看别人的示例代码和我的这个好像差不多。。。
- C/C++ code
#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;
}
- C/C++ code
#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;
}