MEMORY(3C) MEMORY(3C) НАЗВАНИЕ memory: memccpy, memchr, memcmp, memcpy, memset - функ- ции для работы с памятью СИНТАКСИС |#include | |char *memccpy (s1, s2, c, n) |char *s1, *s2; |int c, n; | |char *memchr (s, c, n) |char *s; |int c, n; | |int memcmp (s1, s2, n) |char *s1, *s2; |int n; | |char *memcpy (s1, s2, n) |char *s1, *s2; |int n; | |char *memset (s, c, n) |char *s; |int c, n; ОПИСАНИЕ Данные функции максимально эффективно манипулируют с областями памяти (массивами символов, размер которых определяется счетчиком, а не нулевым байтом в конце). Функции не выполняют проверку переполнения массива-при- емника. Функция memccpy копирует символы из области памяти s2 в s1 до тех пор, пока либо не будет скопировано первое вхождение символа c, либо не будет скопировано n симво- лов. Функция возвращает указатель на следующий после c элемент массива s1 в случае, если c был найден, или пустой указатель (NULL), если c не был найден среди первых n символов s2. Функция memchr возвращает указатель на первое вхождение символа c в n первых символов области памяти s или пус- той указатель, если символ c не встретился. Функция memcmp сравнивает первые n символов своих аргу- ментов. Функция возвращает целое число, меньшее, равное или большее 0, если s1, соответственно, лексикографи- чески меньше, равно или больше s2. Функция memcpy копирует n символов из области памяти s2 в s1. Результат функции - s1. Функция memset заполняет первые n байт области памяти s символами c. Результат функции - s. Для удобства пользователей все эти функции описаны во включаемом файле . ОГРАНИЧЕНИЯ Функция memcmp использует аппаратное сравнение симво- лов. Поэтому результаты сравнения цепочек, содержащих символы со старшим битом, равным единице, машинно-зави- симы. В данной системе подобные символы трактуются как отрицательные числа. Так как пересылка символов осуществляется по-разному в различных реализациях, перекрытие областей памяти может привести к неожиданным результатам.