sbrk.c

来自「Newlib 嵌入式 C库 标准实现代码」· C语言 代码 · 共 37 行

C
37
字号
#include <_ansi.h>#include <sys/types.h>#include <sys/stat.h>#include "sys/syscall.h"int errno;int __trap0 ();#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3))caddr_t_sbrk (size_t incr){  extern char end;		/* Defined by the linker */  static char *heap_end;  char *prev_heap_end;#if 0  char *sp = (char *)stack_ptr;#else  char *sp = (char *)&sp;#endif  if (heap_end == 0)    {      heap_end = &end;    }  prev_heap_end = heap_end;  if (heap_end + incr > sp)    {      _write (1, "Heap and stack collision\n", 25);      abort ();    }  heap_end += incr;  return (caddr_t) prev_heap_end;}

⌨️ 快捷键说明

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