brk.c

来自「它通过提供glibc兼容使得应用程序移植到较小的c 库时相当得容易. 它能够应用」· C语言 代码 · 共 31 行

C
31
字号
/* consider this code LGPL - davidm */#include <unistd.h>#include <sys/syscall.h>#include <errno.h>/* This must be initialized data because commons can't have aliases.  */void * ___brk_addr = 0;int brk (void *addr){    void *newbrk;	__asm__ volatile ("movel %2,%/d1\n\t"			  "moveq %1,%/d0\n\t"			  "trap  #0\n\t"			  "movel %/d0,%0"		:"=g" (newbrk)		:"i" (__NR_brk),"g" (addr) : "%d0", "%d1");    ___brk_addr = newbrk;    if (newbrk < addr)    {	__set_errno (ENOMEM);	return -1;    }    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?