- 论坛徽章:
- 0
|
是我理解有问题
int main(int argc, char* argv[])
{
int fd = open("./futex",O_RDWR|O_CREAT, 0777);
int fd2 = open("./futex2",O_RDWR|O_CREAT, 0777);
lseek(fd,G,SEEK_SET);
write(fd, "0", 1);
lseek(fd2,G,SEEK_SET);
write(fd2, "0", 1);
char *base = mmap(NULL,G,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
char *base2 = mmap(NULL,G,PROT_READ|PROT_WRITE,MAP_SHARED,fd2,0);
char *p;
for (p = base; p < base + G; p += 4096)
*p = 'a';
for (p = base2; p < base + G; p += 4096)
*p = 'a';
return 0;
}
现象是总是占用内存在700M左右,应该是系统会从它占用的内存中回收 |
|