Архитектура Unix

       

. Пример программы, использующей



Рисунок 7.27. Пример программы, использующей функцию brk, и результаты ее контрольного прогона



#include <signal.h> char *cp; int callno; main() { char *sbrk(); extern catcher(); signal(SIGSEGV,catcher); cp = sbrk(0); printf("original brk value %u\n",cp); for (;;) *cp++ = 1; } catcher(signo); int signo; { callno++; printf("caught sig %d %dth call at addr %u\n", signo,callno,cp); sbrk(256); signal(SIGSEGV,catcher); }
original brk value 140924 caught sig 11 1th call at addr 141312 caught sig 11 2th call at addr 141312 caught sig 11 3th call at addr 143360 ...(тот же адрес печатается до 10-го вызова подпрограммы sbrk) caught sig 11 10th call at addr 143360 caught sig 11 11th call at addr 145408 ...(тот же адрес печатается до 18-го вызова подпрограммы sbrk) caught sig 11 18th call at addr 145408 caught sig 11 19th call at addr 145408 - -










Содержание раздела