cfree - освобождает выделенную память
cfree(3)
освобождает выделенную память
ОБЗОР
#include <stdlib.h>
/* в SunOS 4 */
int cfree(void *ptr);
/* в glibc или FreeBSD libcompat */
void cfree(void *ptr);
/* в SCO OpenServer */
void cfree(char *ptr, unsigned num, unsigned size);
/* в Solaris watchmalloc.so.1 */
void cfree(void *ptr, size_t nelem, size_t elsize);
Требования макроса тестирования свойств для glibc
(см. feature_test_macros(7)):
cfree(): _BSD_SOURCE || _SVID_SOURCE
ОПИСАНИЕ
Эту функцию использовать нельзя. Используйте вместо нее
free(3).
cfree с 1 аргументом
В glibc функция
cfree() является синонимом
free(3), которая
"добавлена для совместимости с SunOS".
В других системах есть другие функции с таким же именем. Объявление функции
приводится иногда в <stdlib.h>, а иногда <malloc.h>.
cfree с 3 аргументами
В некоторых версиях SCO и Solaris есть версии malloc с
cfree() с тремя
аргументами, по аналогии с
calloc(3).
Если она нужна вам при переносе чего-либо, добавьте
#define cfree(p, n, s) free((p))
в свой файл.
Часто задается вопрос: "Могу ли я использовать free(3) для освобождения
памяти, выделенной с помощью calloc(3), или нужно использовать
cfree()?" Ответ: используйте free(3).
В руководстве SCO написано: "Функция cfree доступна для соответствия
стандарту iBCSe2, она просто вызывает free. Аргументы num и size функцией
cfree не используются".
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Версия
cfree() из SunOS (которая является синонимом
free(3))
возвращает 1 в случае успеха и 0 - в случае ошибки. В случае ошибки
errno
устанавливается в значение
EINVAL: значение
ptr не является указателем
на блок, ранее выделенным с помощью одной из функций из семейства
malloc(3).
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
cfree()
безвредность в потоках: безвредно (MT-Safe) /* в glibc */
СООТВЕТСТВИЕ СТАНДАРТАМ
Версия
cfree() с тремя аргументами, используемая в SCO, соответствует
стандарту iBCSe2, Intel386 Binary Compatibility Specification, Edition 2.