求mremap用法,该如何处理

求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;
}

求mremap用法,该如何处理

相关文章:

你感兴趣的文章:

标签云: