Linux repositories inspector
2017-09-15

man-pages-ru

Russian man pages from the Linux Documentation Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

ИМЯ

cfree - освобождает выделенную память

ОБЗОР


#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():
начиная с glibc 2.19:
_DEFAULT_SOURCE
в glibc 2.19 и старее:
_BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ

Эту функцию использовать нельзя. Используйте вместо неё free(3). Начиная с версии 2.26, она удалена из glibc.

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).

ВЕРСИИ

Функция cfree() была удалена из glibc версии 2.26.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
cfree() Безвредность в нитях MT-Safe /* в glibc */

СООТВЕТСТВИЕ СТАНДАРТАМ

Версия cfree() с тремя аргументами, используемая в SCO, соответствует стандарту iBCSe2, Intel386 Binary Compatibility Specification, Edition 2.

СМОТРИТЕ ТАКЖЕ

⇧ Top