- 论坛徽章:
- 0
|
原帖由 思一克 于 2008-4-2 16:48 发表
不是可能(无论有无fd)而是malloc本来就要靠mmap实现.
这也未必吧
不过mmap对文件映射的时候确实是不像普通的mmap然后写一样耗费内存的
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p;
int i = 0;
/* just for strace */
write(1,"",0);
while(i++ < 100)
p = malloc(4096);
sleep(111);
}
strace ./a.out
....
munmap(0xb7f7b000, 82039) = 0
write(1, "", 0) = 0
brk(0) = 0x804a000
brk(0x806c000) = 0x806c000
brk(0x808d000) = 0x808d000
brk(0x80ae000) = 0x80ae000
brk(0x80cf000) = 0x80cf000
rt_sigprocmask(SIG_BLOCK, [CHLD], [], = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, = 0
nanosleep({111, 0}, <unfinished ...> |
|