НАЗВАНИЕ
strcpy, strncpy − копирование строки
СИНТАКСИС
#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
ОПИСАНИЕ
Функция strcpy() копирует строку, указанную как src (включая завершающий символ ’\0’), в массив, указанный как dest. Строки не могут перекрываться, и в целевой строке dest должно быть достаточно места для получения копии.
Функция strncpy работает подобным образом, но копируются только первые n байт строки src. Таким образом, если нулевой байт отсутствует в первых n байтах src, то результирующая строка не будет завершена символом ’\0’.
В случае, если длина src меньше, чем n, то остаток dest будет заполнен нулями.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функции strcpy() и strncpy() возвращают указатель на целевую строку dest.
ОШИБКИ РЕАЛИЗАЦИИ
Если целевая строка strcpy недостаточно велика (такое случается, если программист идиот/болван и не проверяет размер перед копированием), то может случится ужасное. Переполнение строк фиксированной длины является любимым методом крэкеров.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVID 3, POSIX, BSD 4.3, ISO 9899
СМОТРИ ТАКЖЕ
bcopy(3), memccpy(3), memcpy(3), memmove(3)
ПЕРЕВОД
Перевод
с
английского
(C) 2000 Дмитрий
Морожников
(dm [AT] simplex.ru, 2:5070/141.3)