¿Dónde puedo encontrar el código para malloc que mi compilador gcc está usando en este momento? De hecho, quiero escribir mi propia función malloc, que será un poco diferente de la original. Sé que puedo usar hooks et all, pero quiero ver el código real.Código para malloc y libre
Respuesta
El POSIX interfaz de malloc es defined here.
Si desea averiguar cómo la biblioteca C de GNU/Linux (glibc) implementa malloc
, ir a buscar el código fuente de la http://ftp.gnu.org/gnu/glibc/ y mirar el archivo malloc/malloc.c
.
Existe también la documentación de base de la Memory Allocator by Doug Lea que describe la teoría de un m (Emory) alloc (Ator) (leer este carrefully, y luego decidir si realmente necesita para implementar su propia malloc).
no sea defensora de FSF/GNU. pero no hay lugar, ya que esto es mejor para enfatizar el hecho de que deberías decir GNU/Linux, ya que estamos buscando exactamente en el código GNU parte de la cosa GNU/Linux ... Espero al menos que Stallman vote el comentario: D – ShinTakezou
@ ShinTakezou: He votado a favor de tu comentario (y corrigió mi respuesta) en caso de que el bot de RMS no haya detectado mi error;) –
+1 para el enlace al texto de Doug Lea –
Mire en la versión apropiada de glibc en el old release site o here. Por ejemplo, si está utilizando glib 2.9, está en this archive. Busque el archivo malloc/malloc.c
.
Verá que no es una pieza trivial de código de biblioteca.
Parece que cambiaron la estructura de directorios después de glibc-2.9.
malloc()
debe estar en glibc.
Puedo buscar la fuente en línea here.
No publique solo las respuestas del enlace. Publique una parte del enlace en la respuesta. –
- 1. ¿Cómo funcionan el trabajo libre y malloc en C?
- 2. C Programación: malloc y libre dentro de un bucle
- 3. Visual C++ seguridad de subprocesos libre y malloc?
- 4. MinGW referencia indefinida a malloc, libre, sprintf, _beginthreadex
- 5. libre el espacio asignado en C con malloc
- 6. ¿Hay alguna forma de reducir el malloc/libre de ostringstream?
- 7. Diferencias entre utilizar realloc vs. libre -> funciones malloc
- 8. Pruebas unitarias para malloc()
- 9. La diferencia entre software libre y software de código abierto
- 10. malloc implementation?
- 11. entendimiento concepto de libre
- 12. Cuando un programa termina ¿qué ocurre con la memoria asignada utilizando malloc que no está libre?
- 13. Dirección 0x0 no está apilado, malloc o (recientemente) ha sido libre
- 14. Diferencia entre malloc y dlmalloc
- 15. Código abierto/Alternativa libre de Typemock Isolator
- 16. Will compilador optimizar malloc/libre o nuevos/borrar par en alloca
- 17. Segfaults en malloc() y malloc_consolidate()
- 18. ¿Cómo malloc char ** tabla?
- 19. cero tamaño malloc
- 20. C++, Libre-vs tienda Montón
- 21. ¿Cuándo y por qué usar malloc?
- 22. SECCOMP: ¿Cómo emular malloc, realloc y gratis?
- 23. ¿Combinar inicializadores designados y malloc en C99 +?
- 24. Cómo asignar y memoria alineada libre en C
- 25. Cualquier diferencia entre malloc y Marshal.AllocHGlobal?
- 26. Crear una función de envoltura para malloc y gratuita en C
- 27. ¿Qué significa "estáticamente estátizado" y "forma libre" para C++?
- 28. ¿Buen y libre editor de Ruby para Windows?
- 29. ¿Cómo se implementa Malloc y Free?
- 30. libre de un doble puntero
escribe malloc(), luego se llega a la definición. (F12 por lo general) –
Estoy trabajando en Linux y no estoy utilizando ningún depurador. Quiero saber el archivo donde se encuentra. – MetallicPriest
A menos que solo lo hagas como una experiencia de aprendizaje, es una muy mala idea. Buscando con la redefinición de funciones estándar, especialmente algo que es tan básico como malloc, resulta en código frágil y no portátil. –