我正在尝试将tcmalloc移植到uclibc。Tcmalloc定义了sbrk函数,该函数从libc调用__sbrk。另一方面,Uclibc没有__sbrk功能,但有sbrk。
关于如何从tcmalloc sbrk调用uclibc sbrk有什么想法吗?
发布于 2011-12-15 15:33:07
sbrk是一个(旧的) system call,但大多数内存分配器都构建在mmap之上。另请参阅this question
您应该使用syscall,而不是模拟它。而且我更喜欢使用mmap,而不是sbrk
执行系统调用(通常是mmap)是从linux kernel获得更多内存的唯一方法。
从应用程序(或库)的角度来看,system call是原子的(它主要是一条机器指令,如SYSCALL、SYSENTER、int 0x80等)。
https://stackoverflow.com/questions/8516512
复制相似问题