Функция strdup() возвращает указатель на новую строку, являющуюся
дубликатом строки s. Память под новую строку выделятся с помощью
malloc(3) и может быть высвобождены с помощью free(3).
Функция strndup() похожа на предыдущую, но копирует, как максимум,
n символов. Если s длиннее n, то копируются толькоn
символов и добавляется конечный NUL.
Функции strdupa и strndupa похожи, но для выделения буфера
используют alloca(3). Эти функции доступны только при использовании
GNU GCC и имеют те же ограничения, что и alloca(3).
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция strdup() возвращает указатель на строку-дубль или NULL,
если недостаточно памяти.
НАЙДЕННЫЕ ОШИБКИ
ENOMEM
Недостаточно памяти под дубликат строки.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVID 3, BSD 4.3.
Функции strndup(), strdupa() и strndupa() являются
расширениями GNU.