PROFIL(2) PROFIL(2) НАЗВАНИЕ profil - подготовка временного профиля программы СИНТАКСИС |void profil (buff, bufsiz, offset, scale) |char *buff; |int bufsiz, offset, scale; ОПИСАНИЕ Аргумент buff указывает на область памяти, размер кото- рой в байтах задается аргументом bufsiz. После выполне- ния данного системного вызова при каждом такте часов анализируется счетчик команд: из него вычитается значе- ние offset и полученная разность умножается на коэффи- циент scale. Если результат соответствует какому-либо элементу внутри области buff, то данный элемент увели- чивается на 1. Элемент определяется как последователь- ность байт длины sizeof(short). Коэффициент scale интерпретируется как беззнаковая де- нормализованная двоичная дробь с фиксированной точкой, стоящей слева от границы полуслова. Так, коэффициент 0177777 (восьмеричное) дает взаимно-однозначное отобра- жение значений счетчика команд на элементы области buff; 077777 отображает на один элемент пару соседних команд. При значении scale, равном 02, все команды отобразятся на первый элемент области buff, который в результате превратится в непрерываемые часы. Если значение аргумента scale задано равным 0 или 1, получение профиля выключается. При bufsiz равном 0 про- филирование не выключается, однако его результаты нигде не фиксируются. Профилирование выключается при выполне- нии системного вызова exec, но остается в процессе-п томке и родительском процессе после вызова fork. Профи лирование отключается, если обращение к элементу облас- ти buff приведет к выходу за границы памяти, отведенной процессу. СМ. ТАКЖЕ times(2), monitor(3C). prof(1) в Справочнике пользователя. ДИАГНОСТИКА Не предусмотрена.