Книга: Linux программирование в примерах
3.2.2. Копирование строк: strdup()
3.2.2. Копирование строк: strdup()
Одной чрезвычайно типичной операцией является выделение памяти для копирования строки. Это настолько типично, что многие программисты предусматривают для нее простую функцию вместо использования внутритекстового кодирования, и часто эта функция называется strdup()
:
#include <string.h>
/* strdup --- выделить память с malloc() и скопировать строку */
char *strdup(const char *str) {
size_t len;
char *copy;
len = strlen(str) + 1;
/* включить место для завершающего '' */
copy = malloc(len);
if (copy != NULL) strcpy(copy, str);
return copy; /* при ошибке возвращает NULL */
}
С появлением стандарта POSIX 2001 программисты по всему миру могут вздохнуть свободнее: эта функция является теперь частью POSIX в виде расширения XSI:
#include <string.h> /* XSI */
char *strdup(const char *str); /* Копировать str */
Возвращаемое значение равно NULL
, если была ошибка, или указатель на динамически выделенную память с копией str
. Возвращенное значение должно быть освобождено с помощью free()
, когда больше не требуется.
- Резервное копирование базы данных InterBase
- Инструмент командной строки gbak
- Резервное копирование многофайловых баз данных
- Резервное копирование при работе InterBase в режиме 24x7
- Инструмент командной строки gfix
- Как выделить строку, столбец и ячейки
- Удобная операция объединения строк
- Работа со строками
- Преобразование строки в целое: stoi( )
- 8.2.8. Копирование хэша в массив
- Резервное копирование
- ПРИМЕР: СОРТИРОВКА СТРОК