Gdzie mogę znaleźć kod malloc, którego używa mój kompilator gcc? Naprawdę chcę napisać własną funkcję malloc, która będzie trochę inna niż oryginalna. Wiem, że mogę używać hooków i wszystkich, ale chcę zobaczyć prawdziwy kod.Kod dla malloc i bezpłatny
Odpowiedz
interfejsu POSIX malloc jest defined here.
Jeśli chcesz dowiedzieć się, jak biblioteka C w GNU/Linux (glibc) realizuje malloc
, idź i pobrać kod źródłowy z http://ftp.gnu.org/gnu/glibc/ i zajrzeć do pliku malloc/malloc.c
.
Istnieje również dokumentacja podstawowa Memory Allocator by Doug Lea opisujący teorię m (Emory) alloc (ator) (przeczytaj ten carrefully, a następnie zdecydować, czy naprawdę trzeba zaimplementować własną malloc).
, aby nie być adwokatem FSF/GNU, ale nie ma miejsca, ponieważ lepiej jest podkreślić fakt, że powinieneś powiedzieć GNU/Linux, ponieważ dokładnie patrzymy na część kodu GNU/Linuksa na temat GNU ... Nadzieja, że przynajmniej Stallman upowszechni komentarz: D – ShinTakezou
@ ShinTakezou: Podniosłem komentarz (i poprawiłem odpowiedź) na wypadek, gdyby bot RMS nie wykrył mojego błędu;) –
+1 dla linku do tekstu Doug Lea –
Sprawdź w odpowiednim wydaniu glibc pod adresem old release site lub here. Na przykład, jeśli używasz glib 2.9, jest to this archive. Poszukaj pliku malloc/malloc.c
.
Zobaczysz, że nie jest to banalny fragment kodu biblioteki.
Wygląda na to, że zmienił strukturę katalogów po glibc-2.9.
malloc()
powinien znajdować się w glibc.
Dalsze Reading
Multithreading
C++ allocation tricks [Video]
Jestem w stanie przeglądać źródło online here.
Nie publikuj odpowiedzi tylko na link. Opublikuj część linku w odpowiedzi. –
- 1. malloc i nieważne Wskaźniki
- 2. optymalizacja malloc i gcc 2
- 3. Bezpłatny Pascal dla Androida na MIPS
- 4. Segfaults w malloc() i malloc_consolidate()
- 5. prosta i przenośna biblioteka malloc
- 6. Sonar bezpłatny instanse dla otwartych źródeł projektów
- 7. bezpłatny przydzielona pamięć przed powrotem funkcję
- 8. Malloc, wolny i segmentacja winy
- 9. Malloc, wskaźniki łańcuchowe i Valgrind
- 10. Czy wymagany jest operator sizeof dla malloc?
- 11. Mylić przez malloc i swobodnego zachowania
- 12. Czy TinyMCE jest bezpłatny?
- 13. Xcode - bazgroły, krawędzie strażników i straż malloc
- 14. alloc, malloc i alloca - Jaka jest różnica?
- 15. nieprawidłowy wpis fastbin (bezpłatny)
- 16. bezpłatny suwak warstwy jquery?
- 17. Bezpłatny kompilator Java AOT
- 18. Oswajanie bestii malloc/free - porady i wskazówki
- 19. Jak malloc char ** tabeli?
- 20. Arena w funkcji Malloc
- 21. malloc (sizeof (int)) vs malloc (sizeof (int *)) vs (int *) malloc (sizeof (int))
- 22. W C są malloc (256) i malloc (sizeof (char) * 256) równoważne?
- 23. Bezpłatny łatwy sposób rysowania wykresów i wykresów w C++?
- 24. Czy istnieje otwarty/bezpłatny interfejs API dla rekordów publicznych?
- 25. Dobry, bezpłatny szkielet logowania Delphi
- 26. malloc w systemach wbudowanych
- 27. Znajdź bezpłatny numer wyświetlacza X11
- 28. Czy istnieje bezpłatny transformator pośredniczący?
- 29. Malloc tablica wewnątrz struktury
- 30. preferując malloc nad calloc
napisać malloc(), a następnie do definicji. (Zazwyczaj F12) –
Pracuję w Linuksie i nie używam żadnego debuggera. Chcę poznać plik, w którym został znaleziony. – MetallicPriest
Jeśli nie robisz tego jako nauki, jest to bardzo zły pomysł. Szturchanie z przedefiniowaniem standardowych funkcji, zwłaszcza tak podstawowych, jak malloc, skutkuje kruchym, nieprzenośnym kodem. –