.\" -*- coding: UTF-8 -*- .\" Copyright 2002, Walter Harms .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH __malloc_hook 3 "8 februarie 2026" "Pagini de manual de Linux 6.18" .SH NUME __malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, __realloc_hook, __after_morecore_hook \- variabile de depanare malloc (DEPRECIATE) .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBtypeof(void *(size_t \fP\fIsize\fP\fB, const void *\fP\fIcaller\fP\fB))\fP \fB*volatile __malloc_hook;\fP .P \fBtypeof(void *(void *\fP\fIp\fP\fB, size_t \fP\fIsize\fP\fB, const void *\fP\fIcaller\fP\fB))\fP \fB*volatile __realloc_hook;\fP .P \fBtypeof(void *(size_t \fP\fIalign\fP\fB, size_t \fP\fIsize\fP\fB, const void *\fP\fIcaller\fP\fB))\fP \fB*volatile __memalign_hook;\fP .P \fBtypeof(void *(void *\fP\fIp\fP\fB, const void *\fP\fIcaller\fP\fB))\fP \fB*volatile __free_hook;\fP .P \fBtypeof(void (void)) *__malloc_initialize_hook;\fP \fBtypeof(void (void)) *volatile __after_mrecore_hook;\fP .fi .SH DESCRIERE Biblioteca GNU C vă permite să modificați comportamentul lui \fBmalloc\fP(3), \fBrealloc\fP(3) și \fBfree\fP(3) prin specificarea unor funcții cârlig corespunzătoare. Puteți utiliza aceste cârlige pentru a vă ajuta la depanarea programelor care utilizează alocarea dinamică a memoriei, de exemplu. .P Variabila \fB__malloc_initialize_hook\fP indică o funcție care este apelată o singură dată atunci când este inițializată implementarea malloc. Aceasta este o variabilă slabă, astfel încât poate fi suprascrisă în aplicație cu o definiție ca cea de mai jos: .P .in +4n .EX typeof(void (void)) *__malloc_initialize_hook = my_init_hook; .EE .in .P Acum, funcția \fImy_init_hook\fP() poate face inițializarea tuturor cârligelor. .P Cele patru funcții indicate de \fB__malloc_hook\fP, \fB__realloc_hook\fP, \fB__memalign_hook\fP, \fB__free_hook\fP au un prototip asemănător funcțiilor \fBmalloc\fP(3), \fBrealloc\fP(3), \fBmemalign\fP(3), \fBfree\fP(3), respectiv \fBmemalign\fP(3), cu excepția faptului că acestea au un argument final \fIcaller\fP care oferă adresa apelantului lui \fBmalloc\fP(3), etc. .P Variabila \fB__after_morecore_hook\fP indică o funcție care este apelată de fiecare dată după ce lui \fBsbrk\fP(2) i s\-a cerut mai multă memorie. .SH STANDARDE GNU. .SH NOTE .\" https://bugzilla.redhat.com/show_bug.cgi?id=450187 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=9957 Utilizarea acestor funcții cârlig nu este sigură în programele cu mai multe fire, iar acum acestea sunt depreciate. Începând cu glibc 2.24, variabila \fB__malloc_initialize_hook\fP a fost eliminată din API, iar începând cu glibc 2.34, toate variabilele cârlig au fost eliminate din API. În schimb, programatorii ar trebui să preîntâmpine apelurile către funcțiile relevante prin definirea și exportul \fBmalloc\fP(), \fBfree\fP(), \fBrealloc\fP() și \fBcalloc\fP(). .SH EXEMPLE Iată un scurt exemplu de utilizare a acestor variabile. .P .EX #include #include \& /* Prototipurile pentru cârligele noastre */ static void my_init_hook(void); static void *my_malloc_hook(size_t, const void *); \& /* Variabile pentru a salva cârligele originale */ static typeof(void *(size_t, const void *)) *old_malloc_hook; \& /* Suprascrie cârligul de inițializare din biblioteca C */ typeof(void (void)) *__malloc_initialize_hook = my_init_hook; \& static void my_init_hook(void) { old_malloc_hook = __malloc_hook; __malloc_hook = my_malloc_hook; } \& static void * my_malloc_hook(size_t size, const void *caller) { void *result; \& /* Restabilește toate cârligele vechi */ __malloc_hook = old_malloc_hook; \& /* Apel recursiv */ result = malloc(size); \& /* Salvează cârligele de bază */ old_malloc_hook = __malloc_hook; \& /* printf() might call malloc(), so protect it too */ printf("malloc(%zu) apelat de la %p returnează %p\[rs]n", size, caller, result); \& /* Restabilește propriile noastre cârlige */ __malloc_hook = my_malloc_hook; \& return result; } .EE .SH "CONSULTAȚI ȘI" \fBmallinfo\fP(3), \fBmalloc\fP(3), \fBmcheck\fP(3), \fBmtrace\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .