diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /po/fr/man3/malloc.3.po | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/fr/man3/malloc.3.po')
-rw-r--r-- | po/fr/man3/malloc.3.po | 1044 |
1 files changed, 1044 insertions, 0 deletions
diff --git a/po/fr/man3/malloc.3.po b/po/fr/man3/malloc.3.po new file mode 100644 index 00000000..5aa4a022 --- /dev/null +++ b/po/fr/man3/malloc.3.po @@ -0,0 +1,1044 @@ +# French translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Christophe Blaess <https://www.blaess.fr/christophe/>, 1996-2003. +# Stéphan Rafin <stephan.rafin@laposte.net>, 2002. +# Thierry Vignaud <tvignaud@mandriva.com>, 1999, 2002. +# François Micaux, 2002. +# Alain Portal <aportal@univ-montp2.fr>, 2003-2008. +# Jean-Philippe Guérard <fevrier@tigreraye.org>, 2005-2006. +# Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, 2006-2007. +# Julien Cristau <jcristau@debian.org>, 2006-2007. +# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006-2008. +# Nicolas François <nicolas.francois@centraliens.net>, 2006-2008. +# Florentin Duneau <fduneau@gmail.com>, 2006-2010. +# Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006, 2013. +# Denis Barbier <barbier@debian.org>, 2006, 2010. +# David Prévot <david@tilapin.org>, 2010, 2012-2014. +# Grégoire Scano <gregoire.scano@malloc.fr>, 2020-2021. +# Lucien Gentis <lucien.gentis@waika9.com>, 2023. +msgid "" +msgstr "" +"Project-Id-Version: perkamon\n" +"POT-Creation-Date: 2024-03-01 17:01+0100\n" +"PO-Revision-Date: 2023-08-13 09:18+0200\n" +"Last-Translator: Lucien Gentis <lucien.gentis@waika9.com>\n" +"Language-Team: French <debian-l10n-french@lists.debian.org>\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: vim-gtk3\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 "malloc" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 octobre 2023" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Pages du manuel de Linux 6.06" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "NOM" + +#. 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 "" +"malloc, free, calloc, realloc, reallocarray — Allocation et libération de " +"mémoire dynamique" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "LIBRARY" +msgstr "BIBLIOTHÈQUE" + +#. 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<libc>, I<-lc>)" +msgstr "Bibliothèque C standard (I<libc>, I<-lc>)" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "SYNOPSIS" + +#. 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 E<lt>stdlib.hE<gt>>\n" +msgstr "B<#include E<lt>stdlib.hE<gt>>\n" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"B<void *malloc(size_t >I<size>B<);>\n" +"B<void free(void *_Nullable >I<ptr>B<);>\n" +"B<void *calloc(size_t >I<nmemb>B<, size_t >I<size>B<);>\n" +"B<void *realloc(void *_Nullable >I<ptr>B<, size_t >I<size>B<);>\n" +"B<void *reallocarray(void *_Nullable >I<ptr>B<, size_t >I<nmemb>B<, size_t >I<size>B<);>\n" +msgstr "" +"B<void *malloc(size_t >I<taille>B<);>\n" +"B<void free(void *_Nullable >I<ptr>B<);>\n" +"B<void *calloc(size_t >I<nmemb>B<, size_t >I<taille>B<);>\n" +"B<void *realloc(void *_Nullable >I<ptr>B<, size_t >I<taille>B<);>\n" +"B<void *reallocarray(void *_Nullable >I<ptr>B<, size_t >I<nmemb>B<, size_t >I<size>B<);>\n" + +#. 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<feature_test_macros>(7)):" +msgstr "" +"Exigences de macros de test de fonctionnalités pour la glibc (consulter " +"B<feature_test_macros>(7)) :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<reallocarray>():" +msgstr "B<reallocarray>() :" + +#. 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 "" +" Depuis la glibc 2.29 :\n" +" _DEFAULT_SOURCE\n" +" glibc 2.28 et précédentes :\n" +" _GNU_SOURCE\n" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPTION" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "malloc()" +msgstr "malloc()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<malloc>() function allocates I<size> bytes and returns a pointer to " +"the allocated memory. I<The memory is not initialized>. If I<size> is 0, " +"then B<malloc>() returns a unique pointer value that can later be " +"successfully passed to B<free>(). (See \"Nonportable behavior\" for " +"portability issues.)" +msgstr "" +"La fonction B<malloc>() alloue I<taille> octets et renvoie un pointeur sur " +"la mémoire allouée. I<Le contenu de la zone de mémoire n'est pas " +"initialisé>. Si I<taille> est nulle, B<malloc> renvoie une valeur de " +"pointeur unique qui pourra être passée ultérieurement à B<free>() avec " +"succès (consulter « Comportement non portable » pour les problèmes de " +"portabilité)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "free()" +msgstr "free()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<free>() function frees the memory space pointed to by I<ptr>, which " +"must have been returned by a previous call to B<malloc>() or related " +"functions. Otherwise, or if I<ptr> has already been freed, undefined " +"behavior occurs. If I<ptr> is NULL, no operation is performed." +msgstr "" +"La fonction B<free>() libère l'espace mémoire pointé par I<ptr> qui doit " +"avoir été obtenu lors d'un appel antérieur à B<malloc>() ou une fonction de " +"la même famille. Autrement, ou si I<ptr> a déjà été libéré, le comportement " +"est indéterminé. Si I<ptr> est NULL, aucune opération n'est effectuée." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "calloc()" +msgstr "calloc()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<calloc>() function allocates memory for an array of I<nmemb> elements " +"of I<size> bytes each and returns a pointer to the allocated memory. The " +"memory is set to zero. If I<nmemb> or I<size> is 0, then B<calloc>() " +"returns a unique pointer value that can later be successfully passed to " +"B<free>()." +msgstr "" +"La fonction B<calloc>() alloue de la mémoire pour un tableau de I<nmemb> " +"éléments de taille I<taille> octets chacun et renvoie un pointeur sur la " +"mémoire allouée. La zone mémoire est initialisée à 0. Si I<nmemb> ou " +"I<taille> vaut 0, B<calloc>() renvoie alors une valeur de pointeur unique " +"qui pourra être passée ultérieurement à B<free>() avec succès." + +#. 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<nmemb> and I<size> would result in integer " +"overflow, then B<calloc>() returns an error. By contrast, an integer " +"overflow would not be detected in the following call to B<malloc>(), with " +"the result that an incorrectly sized block of memory would be allocated:" +msgstr "" +"Si la multiplication de I<nmemb> par I<taille> provoque un dépassement " +"d'entier, B<calloc>() renvoie une erreur. Par contre, aucun dépassement " +"d'entier ne serait détecté lors de l'appel suivant à B<malloc>(), avec pour " +"conséquence l'allocation d'un bloc de mémoire incorrectement dimensionné :" + +#. 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 "malloc(nmemb * taille);\n" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "realloc()" +msgstr "realloc()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<realloc>() function changes the size of the memory block pointed to " +"by I<ptr> to I<size> 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<not> be initialized." +msgstr "" +"La fonction B<realloc>() modifie la taille du bloc de mémoire pointé par " +"I<ptr> à I<taille> octets. Le contenu de la mémoire entre la zone de départ " +"et le minimum des ancienne et nouvelle tailles n'est pas modifié. Si la " +"nouvelle taille est plus grande que l'ancienne taille, le contenu de la zone " +"de mémoire nouvellement allouée n'est I<pas> initialisé." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I<ptr> is NULL, then the call is equivalent to I<malloc(size)>, for all " +"values of I<size>." +msgstr "" +"Si I<ptr> est égal à NULL, l'appel est équivalent à I<malloc(taille)> pour " +"toutes les valeurs de I<taille>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I<size> is equal to zero, and I<ptr> is not NULL, then the call is " +"equivalent to I<free(ptr)> (but see \"Nonportable behavior\" for portability " +"issues)." +msgstr "" +"Si I<taille> est égale à zéro et si I<ptr> est différent de NULL, l'appel " +"est équivalent à I<free(ptr)> (consulter cependant « Comportement non " +"portable » pour les problèmes de portabilité)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Unless I<ptr> is NULL, it must have been returned by an earlier call to " +"B<malloc> or related functions. If the area pointed to was moved, a " +"I<free(ptr)> is done." +msgstr "" +"Excepté le cas où I<ptr> est égal à NULL, il doit avoir été renvoyé par un " +"appel précédent à B<malloc> ou à une fonction de la même famille. Si la zone " +"pointée a été déplacée, l'appel I<free(ptr)> est effectué." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "reallocarray()" +msgstr "reallocarray()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<reallocarray>() function changes the size of (and possibly moves) " +"the memory block pointed to by I<ptr> to be large enough for an array of " +"I<nmemb> elements, each of which is I<size> bytes. It is equivalent to the " +"call" +msgstr "" +"La fonction B<reallocarray>() déplace éventuellement le bloc mémoire pointé " +"par I<ptr> et change sa taille pour qu'il soit suffisamment grand pour " +"contenir un tableau de I<nmemb> éléments faisant chacun I<taille> octets. " +"Elle équivaut à l'appel" + +#. 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 "realloc(ptr, nmemb * taille);\n" + +#. 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<realloc>() call, B<reallocarray>() fails safely in " +"the case where the multiplication would overflow. If such an overflow " +"occurs, B<reallocarray>() returns an error." +msgstr "" +"Cependant, contrairement à cet appel de B<realloc>(), B<reallocarray>() " +"échoue sans danger dans le cas où la multiplication entraînerait un " +"dépassement. Si un tel dépassement se produit, B<reallocarray>() renvoie une " +"erreur." + +#. 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 "VALEUR RENVOYÉE" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<malloc>(), B<calloc>(), B<realloc>(), and B<reallocarray>() 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<errno>. Attempting to allocate more than " +"B<PTRDIFF_MAX> bytes is considered an error, as an object that large could " +"cause later pointer subtraction to overflow." +msgstr "" +"Les fonctions B<malloc>(), B<calloc>(), B<realloc>() et B<reallocarray>() " +"renvoient un pointeur vers la mémoire allouée qui est correctement alignée " +"pour n'importe quel type dont la taille correspondra à la taille demandée ou " +"sera inférieure à cette dernière. Si elles échouent, elles renvoient NULL et " +"définissent I<errno> pour indiquer l'erreur. Essayer d'allouer plus que " +"B<PTRDIFF_MAX> octets est considéré comme une erreur, car un objet de cette " +"taille pourrait provoquer un dépassement lors d'une soustraction de pointeur " +"ultérieure." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The B<free>() function returns no value, and preserves I<errno>." +msgstr "La fonction B<free>() ne renvoie aucune valeur et préserve I<errno>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<realloc>() and B<reallocarray>() functions return NULL if I<ptr> 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<ptr> if the allocation was not moved " +"(e.g., there was room to expand the allocation in-place), or different from " +"I<ptr> 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 "" +"Les fonction B<realloc>() et B<reallocarray>() renvoient NULL si I<ptr> est " +"différent de NULL et si la taille demandée est égale à zéro, ce qui n'est " +"pas considéré comme une erreur (consulter « Comportement non portable » pour " +"les problèmes de portabilité). Dans le cas contraire, le pointeur renvoyé " +"peut être identique à I<ptr> si la zone mémoire n'a pas été déplacée (par " +"exemple s'il y a assez de place pour l'étendre à son emplacement), ou peut " +"être différent de I<ptr> si la zone mémoire a été déplacée à une nouvelle " +"adresse. Si ces fonctions échouent, le bloc mémoire originel reste intact ; " +"il n'est ni libéré ni déplacé." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "ERREURS" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<calloc>(), B<malloc>(), B<realloc>(), and B<reallocarray>() can fail with " +"the following error:" +msgstr "" +"B<calloc>(), B<malloc>(), B<realloc>() et B<reallocarray>() peuvent échouer " +"avec l'erreur suivante :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOMEM>" +msgstr "B<ENOMEM>" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +msgid "" +"Out of memory. Possibly, the application hit the B<RLIMIT_AS> or " +"B<RLIMIT_DATA> limit described in B<getrlimit>(2). Another reason could be " +"that the number of mappings created by the caller process exceeded the limit " +"specified by I</proc/sys/vm/max_map_count>." +msgstr "" +"Plus de mémoire. Il est possible que l'application ait atteint les limites " +"B<RLIMIT_AS> ou B<RLIMIT_DATA> décrites dans B<getrlimit>(2). Une autre " +"raison pourrait être que le nombre de mappages créés par le processus " +"appelant dépasse la limite spécifiée par I</proc/sys/vm/max_map_count>." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ATTRIBUTES" +msgstr "ATTRIBUTS" + +#. 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<attributes>(7)." +msgstr "" +"Pour une explication des termes utilisés dans cette section, consulter " +"B<attributes>(7)." + +#. 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 "Interface" + +#. 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 "Attribut" + +#. 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 "Valeur" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid ".na\n" +msgstr ".na\n" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid ".nh\n" +msgstr ".nh\n" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<malloc>(),\n" +"B<free>(),\n" +"B<calloc>(),\n" +"B<realloc>()" +msgstr "" +"B<malloc>(),\n" +"B<free>(),\n" +"B<calloc>(),\n" +"B<realloc>()" + +#. 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 "Sécurité des threads" + +#. 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 "MT-Safe" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "STANDARDS" +msgstr "STANDARDS" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<malloc>()" +msgstr "B<malloc>()" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<free>()" +msgstr "B<free>()" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<calloc>()" +msgstr "B<calloc>()" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<realloc>()" +msgstr "B<realloc>()" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "C11, POSIX.1-2008." +msgstr "C11, POSIX.1-2008." + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<reallocarray>()" +msgstr "B<reallocarray>()" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "None." +msgstr "Aucun." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "HISTORIQUE" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "POSIX.1-2001, C89." +msgstr "POSIX.1-2001, C89." + +#. 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 "glibc 2.26. OpenBSD 5.6, FreeBSD 11.0." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<malloc>() and related functions rejected sizes greater than " +"B<PTRDIFF_MAX> starting in glibc 2.30." +msgstr "" +"Depuis la glibc 2.30, B<malloc>() et les fonctions de la même famille " +"refusent les tailles supérieures à B<PTRDIFF_MAX>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<free>() preserved I<errno> starting in glibc 2.33." +msgstr "Depuis la glibc 2.33, B<free>() préserve I<errno>." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NOTES" +msgstr "NOTES" + +#. 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<malloc>() 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</proc/sys/vm/overcommit_memory> and I</" +"proc/sys/vm/oom_adj> in B<proc>(5), and the Linux kernel source file " +"I<Documentation/vm/overcommit-accounting.rst>." +msgstr "" +"Par défaut, Linux suit une stratégie d'allocation optimiste. Cela signifie " +"que lorsque B<malloc>() ne renvoie pas NULL, il n'y a aucune garantie que la " +"mémoire soit véritablement disponible. S'il devait s'avérer que le système " +"manque de mémoire, un ou plusieurs processus seraient tués par l'infâme «\\ " +"OOM killer\\ » (gestionnaire de mémoire). Pour plus d'informations, " +"consultez la description de I</proc/sys/vm/overcommit_memory> et I</proc/sys/" +"vm/oom_adj> dans B<proc>(5), ainsi que le fichier I<Documentation/vm/" +"overcommit-accounting.rst> des sources du noyau Linux." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Normally, B<malloc>() allocates memory from the heap, and adjusts the size " +"of the heap as required, using B<sbrk>(2). When allocating blocks of memory " +"larger than B<MMAP_THRESHOLD> bytes, the glibc B<malloc>() implementation " +"allocates the memory as a private anonymous mapping using B<mmap>(2). " +"B<MMAP_THRESHOLD> is 128\\ kB by default, but is adjustable using " +"B<mallopt>(3). Prior to Linux 4.7 allocations performed using B<mmap>(2) " +"were unaffected by the B<RLIMIT_DATA> resource limit; since Linux 4.7, this " +"limit is also enforced for allocations performed using B<mmap>(2)." +msgstr "" +"En général, B<malloc>() alloue la mémoire depuis le tas, et ajuste la taille " +"du tas en conséquence avec B<sbrk>(2). Lorsque les blocs de mémoire alloués " +"sont plus larges que B<MMAP_THRESHOLD> octets, l'implémentation de la glibc " +"de B<malloc> alloue la mémoire selon une projection anonyme privée avec " +"B<mmap>(2). B<MMAP_THRESHOLD> vaut 128\\ ko par défaut et il est ajustable " +"avec B<mallopt>(3). Avant Linux 4.7, les allocations réalisées avec " +"B<mmap>(2) n’étaient pas affectées par la limitation de ressource " +"B<RLIMIT_DATA> ; depuis Linux 4.7, cette limite est aussi prise en compte " +"pour les allocations faites avec B<mmap>(2)." + +#. 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<memory allocation arenas> if mutex " +"contention is detected. Each arena is a large region of memory that is " +"internally allocated by the system (using B<brk>(2) or B<mmap>(2)), and " +"managed with its own mutexes." +msgstr "" +"Pour éviter les corruptions d'applications multithread, les mutex sont " +"utilisés en interne pour protéger les structures de données de gestion de " +"mémoire utilisées dans ces fonctions. Dans une application multithread où " +"les threads allouent et libèrent la mémoire en même temps, ces mutex " +"risquent d'entrer en conflit. Pour gérer l'allocation de mémoire de façon " +"évolutive dans les applications multithread, la glibc crée des I<domaines " +"d'allocation mémoire> si un conflit de mutex est détecté. Chaque domaine est " +"un grand espace de mémoire qui est alloué en interne par le système (en " +"utilisant B<brk>(2) ou B<mmap>(2)) et géré avec ses propres mutex." + +#. 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<malloc>(), B<free>(), B<calloc>(), and B<realloc>(). The " +"replacement functions must implement the documented glibc behaviors, " +"including I<errno> handling, size-zero allocations, and overflow checking; " +"otherwise, other library routines may crash or operate incorrectly. For " +"example, if the replacement I<free>() does not preserve I<errno>, then " +"seemingly unrelated library routines may fail without having a valid reason " +"in I<errno>. Private memory allocators may also need to replace other glibc " +"functions; see \"Replacing malloc\" in the glibc manual for details." +msgstr "" +"Si votre programme utilise un allocateur de mémoire privé, il doit le faire " +"en remplaçant B<malloc>(), B<free>(), B<calloc>() et B<realloc>(). Les " +"fonctions de remplacement doivent implémenter les comportements de la glibc " +"documentés, y compris la gestion de I<errno>, les allocations de taille " +"nulle et la surveillance des dépassements ; si ce n'est pas le cas, d'autres " +"routines de la bibliothèque pourront se planter ou fonctionner de manière " +"incorrecte. Par exemple, si la fonction qui remplace I<free>() ne préserve " +"pas I<errno>, des routines de la bibliothèque apparemment sans rapport " +"pourront échouer sans indiquer de raison valable dans I<errno>. Un " +"allocateur de mémoire privé devra peut-être aussi remplacer d'autres " +"fonctions de la glibc ; consulter « Remplacer malloc » dans le manuel de la " +"glibc pour plus de détails." + +#. 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 "" +"L'échec d'un allocateur de mémoire est presque toujours le signe d'une " +"corruption du tas, à l'instar d'un débordement de bloc mémoire alloué ou " +"d'une double libération du même pointeur." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<malloc>() implementation is tunable via environment variables; see " +"B<mallopt>(3) for details." +msgstr "" +"L'implémentation de B<malloc>() est personnalisable à l'aide des variables " +"d'environnement. Pour plus de précisions, consultez B<mallopt>(3)." + +#. 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 "Comportement non portable" + +#. 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<errno>, " +"and portable POSIX programs should tolerate such behavior. See " +"B<realloc>(3p)." +msgstr "" +"Le comportement de ces fonctions lorsque la taille demandée est égale à 0 " +"est spécifique à la glibc ; d'autres implémentations peuvent renvoyer NULL " +"sans définir I<errno> et les programmes POSIX portables doivent tenir compte " +"de ces comportements. Consultez B<realloc>(3p)." + +#. 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<errno> upon failure. However, the " +"C standard does not require this, and applications portable to non-POSIX " +"platforms should not assume this." +msgstr "" +"La norme POSIX exige des allocateurs de mémoire qu'ils renseignent I<errno> " +"en cas d'erreur. Ce n'est cependant pas le cas de la norme C, et les " +"applications portables vers des plateformes non-POSIX ne sont donc pas " +"tenues de se plier à cette contrainte." + +#. 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<malloc>(), B<free>(), B<calloc>(), " +"and B<realloc>()." +msgstr "" +"Les programmes portables ne doivent pas utiliser d'allocateurs de mémoire " +"privés, car les normes C et POSIX ne permettent pas le remplacement des " +"fonctions B<malloc>(), B<free>(), B<calloc>() et B<realloc>()." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLES" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>stddef.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\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 "" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>stddef.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\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 taille);\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 taille)\n" +"{\n" +" return reallocarray(NULL, nmemb, taille);\n" +"}\n" + +#. 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 "VOIR AUSSI" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<valgrind>(1), B<brk>(2), B<mmap>(2), B<alloca>(3), B<malloc_get_state>(3), " +"B<malloc_info>(3), B<malloc_trim>(3), B<malloc_usable_size>(3), " +"B<mallopt>(3), B<mcheck>(3), B<mtrace>(3), B<posix_memalign>(3)" +msgstr "" +"B<valgrind>(1), B<brk>(2), B<mmap>(2), B<alloca>(3), B<malloc_get_state>(3), " +"B<malloc_info>(3), B<malloc_trim>(3), B<malloc_usable_size>(3), " +"B<mallopt>(3), B<mcheck>(3), B<mtrace>(3), B<posix_memalign>(3)" + +#. 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 "" +"Pour des détails sur l'implémentation de la bibliothèque GNU C, consulter E<." +"UR https://sourceware.org/glibc/wiki/MallocInternals> E<.UE .>" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "5 février 2023" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Pages du manuel de Linux 6.03" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"B<void *malloc(size_t >I<size>B<);>\n" +"B<void free(void >I<*ptr>B<);>\n" +"B<void *calloc(size_t >I<nmemb>B<, size_t >I<size>B<);>\n" +"B<void *realloc(void >I<*ptr>B<, size_t >I<size>B<);>\n" +"B<void *reallocarray(void >I<*ptr>B<, size_t >I<nmemb>B<, size_t >I<size>B<);>\n" +msgstr "" +"B<void *malloc(size_t >I<taille>B<);>\n" +"B<void free(void >I<*ptr>B<);>\n" +"B<void *calloc(size_t >I<nmemb>B<, size_t >I<taille>B<);>\n" +"B<void *realloc(void >I<*ptr>B<, size_t >I<taille>B<);>\n" +"B<void *reallocarray(void >I<*ptr>B<, size_t >I<nmemb>B<, size_t >I<taille>B<);>\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +msgid "" +"Out of memory. Possibly, the application hit the B<RLIMIT_AS> or " +"B<RLIMIT_DATA> limit described in B<getrlimit>(2)." +msgstr "" +"Plus de mémoire. Il est possible que l'application ait atteint les limites " +"B<RLIMIT_AS> ou B<RLIMIT_DATA> décrites dans B<getrlimit>(2)." + +#. type: SH +#: debian-bookworm +#, no-wrap +msgid "VERSIONS" +msgstr "VERSIONS" + +#. type: Plain text +#: debian-bookworm +msgid "B<reallocarray>() was added in glibc 2.26." +msgstr "B<reallocarray>() a été ajoutée dans la glibc 2.26." + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<malloc>(), B<free>(), B<calloc>(), B<realloc>(): POSIX.1-2001, " +"POSIX.1-2008, C99." +msgstr "" +"B<malloc>(), B<free>(), B<calloc>(), B<realloc>() : POSIX.1-2001, " +"POSIX.1-2008, C99." + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<reallocarray>() is a nonstandard extension that first appeared in OpenBSD " +"5.6 and FreeBSD 11.0." +msgstr "" +"B<reallocarray>() est une extension non standard apparue pour la première " +"fois dans OpenBSD 5.6 et FreeBSD 11.0." + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-20" +msgstr "20 juillet 2023" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "Pages du manuel de Linux 6.05.01" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "30 mars 2023" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Pages du manuel de Linux 6.04" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>stddef.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +msgstr "" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>stddef.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" + +#. 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 "" +"#define MALLOCARRAY(n, type) ((type *) my_mallocarray(n, sizeof(type)))\n" +"#define MALLOC(type) MALLOCARRAY(1, type)\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "static inline void *my_mallocarray(size_t nmemb, size_t size);\n" +msgstr "static inline void *my_mallocarray(size_t nmemb, size_t taille);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"main(void)\n" +"{\n" +" char *p;\n" +msgstr "" +"int\n" +"main(void)\n" +"{\n" +" char *p;\n" + +#. 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 "" +" p = MALLOCARRAY(32, char);\n" +" if (p == NULL)\n" +" err(EXIT_FAILURE, \"malloc\");\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +" strlcpy(p, \"foo\", 32);\n" +" puts(p);\n" +"}\n" +msgstr "" +" strlcpy(p, \"foo\", 32);\n" +" puts(p);\n" +"}\n" + +#. 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 "" +"static inline void *\n" +"my_mallocarray(size_t nmemb, size_t taille)\n" +"{\n" +" return reallocarray(NULL, nmemb, taille);\n" +"}\n" |