# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 06:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "malloc" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "malloc, free, calloc, realloc, reallocarray - allocate and free dynamic " "memory" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<#include Estdlib.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "BIB<);>\n" "BIB<);>\n" "BIB<, size_t >IB<);>\n" "BIB<, size_t >IB<);>\n" "BIB<, size_t >IB<, size_t >IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B():" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" " Since glibc 2.29:\n" " _DEFAULT_SOURCE\n" " glibc 2.28 and earlier:\n" " _GNU_SOURCE\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "malloc()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function allocates I bytes and returns a pointer to " "the allocated memory. I. If I is 0, " "then B() returns a unique pointer value that can later be " "successfully passed to B(). (See \"Nonportable behavior\" for " "portability issues.)" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "free()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function frees the memory space pointed to by I, which " "must have been returned by a previous call to B() or related " "functions. Otherwise, or if I has already been freed, undefined " "behavior occurs. If I is NULL, no operation is performed." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "calloc()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function allocates memory for an array of I elements " "of I bytes each and returns a pointer to the allocated memory. The " "memory is set to zero. If I or I is 0, then B() " "returns a unique pointer value that can later be successfully passed to " "B()." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the multiplication of I and I would result in integer " "overflow, then B() returns an error. By contrast, an integer " "overflow would not be detected in the following call to B(), with " "the result that an incorrectly sized block of memory would be allocated:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "malloc(nmemb * size);\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "realloc()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function changes the size of the memory block pointed to " "by I to I bytes. The contents of the memory will be unchanged in " "the range from the start of the region up to the minimum of the old and new " "sizes. If the new size is larger than the old size, the added memory will " "I be initialized." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I is NULL, then the call is equivalent to I, for all " "values of I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I is equal to zero, and I is not NULL, then the call is " "equivalent to I (but see \"Nonportable behavior\" for portability " "issues)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Unless I is NULL, it must have been returned by an earlier call to " "B or related functions. If the area pointed to was moved, a " "I is done." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "reallocarray()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function changes the size of (and possibly moves) " "the memory block pointed to by I to be large enough for an array of " "I elements, each of which is I bytes. It is equivalent to the " "call" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "realloc(ptr, nmemb * size);\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "However, unlike that B() call, B() fails safely in " "the case where the multiplication would overflow. If such an overflow " "occurs, B() returns an error." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B(), B(), B(), and B() functions " "return a pointer to the allocated memory, which is suitably aligned for any " "type that fits into the requested size or less. On error, these functions " "return NULL and set I. Attempting to allocate more than " "B bytes is considered an error, as an object that large could " "cause later pointer subtraction to overflow." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The B() function returns no value, and preserves I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() and B() functions return NULL if I is " "not NULL and the requested size is zero; this is not considered an error. " "(See \"Nonportable behavior\" for portability issues.) Otherwise, the " "returned pointer may be the same as I if the allocation was not moved " "(e.g., there was room to expand the allocation in-place), or different from " "I if the allocation was moved to a new address. If these functions " "fail, the original block is left untouched; it is not freed or moved." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(), B(), B(), and B() can fail with " "the following error:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed msgid "" "Out of memory. Possibly, the application hit the B or " "B limit described in B(2). Another reason could be " "that the number of mappings created by the caller process exceeded the limit " "specified by I." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ATTRIBUTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For an explanation of the terms used in this section, see B(7)." msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Interface" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Attribute" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Value" msgstr "" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid ".na\n" msgstr "" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid ".nh\n" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B(),\n" "B(),\n" "B(),\n" "B()" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Thread safety" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MT-Safe" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B()" msgstr "" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B()" msgstr "" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B()" msgstr "" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B()" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "C11, POSIX.1-2008." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B()" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "None." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX.1-2001, C89." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "glibc 2.26. OpenBSD 5.6, FreeBSD 11.0." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() and related functions rejected sizes greater than " "B starting in glibc 2.30." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() preserved I starting in glibc 2.33." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "By default, Linux follows an optimistic memory allocation strategy. This " "means that when B() returns non-NULL there is no guarantee that the " "memory really is available. In case it turns out that the system is out of " "memory, one or more processes will be killed by the OOM killer. For more " "information, see the description of I and I in B(5), and the Linux kernel source file " "I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Normally, B() allocates memory from the heap, and adjusts the size " "of the heap as required, using B(2). When allocating blocks of memory " "larger than B bytes, the glibc B() implementation " "allocates the memory as a private anonymous mapping using B(2). " "B is 128\\ kB by default, but is adjustable using " "B(3). Prior to Linux 4.7 allocations performed using B(2) " "were unaffected by the B resource limit; since Linux 4.7, this " "limit is also enforced for allocations performed using B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To avoid corruption in multithreaded applications, mutexes are used " "internally to protect the memory-management data structures employed by " "these functions. In a multithreaded application in which threads " "simultaneously allocate and free memory, there could be contention for these " "mutexes. To scalably handle memory allocation in multithreaded " "applications, glibc creates additional I if mutex " "contention is detected. Each arena is a large region of memory that is " "internally allocated by the system (using B(2) or B(2)), and " "managed with its own mutexes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If your program uses a private memory allocator, it should do so by " "replacing B(), B(), B(), and B(). The " "replacement functions must implement the documented glibc behaviors, " "including I handling, size-zero allocations, and overflow checking; " "otherwise, other library routines may crash or operate incorrectly. For " "example, if the replacement I() does not preserve I, then " "seemingly unrelated library routines may fail without having a valid reason " "in I. Private memory allocators may also need to replace other glibc " "functions; see \"Replacing malloc\" in the glibc manual for details." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Crashes in memory allocators are almost always related to heap corruption, " "such as overflowing an allocated chunk or freeing the same pointer twice." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() implementation is tunable via environment variables; see " "B(3) for details." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Nonportable behavior" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The behavior of these functions when the requested size is zero is glibc " "specific; other implementations may return NULL without setting I, " "and portable POSIX programs should tolerate such behavior. See " "B(3p)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX requires memory allocators to set I upon failure. However, the " "C standard does not require this, and applications portable to non-POSIX " "platforms should not assume this." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Portable programs should not use private memory allocators, as POSIX and the " "C standard do not allow replacement of B(), B(), B(), " "and B()." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#include Eerr.hE\n" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "\\&\n" "#define MALLOCARRAY(n, type) ((type *) my_mallocarray(n, sizeof(type)))\n" "#define MALLOC(type) MALLOCARRAY(1, type)\n" "\\&\n" "static inline void *my_mallocarray(size_t nmemb, size_t size);\n" "\\&\n" "int\n" "main(void)\n" "{\n" " char *p;\n" "\\&\n" " p = MALLOCARRAY(32, char);\n" " if (p == NULL)\n" " err(EXIT_FAILURE, \"malloc\");\n" "\\&\n" " strlcpy(p, \"foo\", 32);\n" " puts(p);\n" "}\n" "\\&\n" "static inline void *\n" "my_mallocarray(size_t nmemb, size_t size)\n" "{\n" " return reallocarray(NULL, nmemb, size);\n" "}\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(1), B(2), B(2), B(3), B(3), " "B(3), B(3), B(3), " "B(3), B(3), B(3), B(3)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For details of the GNU C library implementation, see E<.UR https://" "sourceware.org/glibc/wiki/MallocInternals> E<.UE .>" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "BIB<);>\n" "BI<*ptr>B<);>\n" "BIB<, size_t >IB<);>\n" "BI<*ptr>B<, size_t >IB<);>\n" "BI<*ptr>B<, size_t >IB<, size_t >IB<);>\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 msgid "" "Out of memory. Possibly, the application hit the B or " "B limit described in B(2)." msgstr "" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: debian-bookworm msgid "B() was added in glibc 2.26." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "B(), B(), B(), B(): POSIX.1-2001, " "POSIX.1-2008, C99." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "B() is a nonstandard extension that first appeared in OpenBSD " "5.6 and FreeBSD 11.0." msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "" "#include Eerr.hE\n" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "" "#define MALLOCARRAY(n, type) ((type *) my_mallocarray(n, sizeof(type)))\n" "#define MALLOC(type) MALLOCARRAY(1, type)\n" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "static inline void *my_mallocarray(size_t nmemb, size_t size);\n" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " char *p;\n" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "" " p = MALLOCARRAY(32, char);\n" " if (p == NULL)\n" " err(EXIT_FAILURE, \"malloc\");\n" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "" " strlcpy(p, \"foo\", 32);\n" " puts(p);\n" "}\n" msgstr "" #. type: Plain text #: opensuse-leap-15-6 #, no-wrap msgid "" "static inline void *\n" "my_mallocarray(size_t nmemb, size_t size)\n" "{\n" " return reallocarray(NULL, nmemb, size);\n" "}\n" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""