ce qui est __imp__malloc dans un programme lié MinGW-32?
Question
h tenter de comprendre si malloc()
dans mon programme de mingw32 compilé de façon croisée est threadsafe ou non, j'ai couru nm
sur le binaire. Les résultats:
$ i386-mingw32-nm myfile.exe | grep malloc
00ab04fc I __imp__malloc
005b8e70 T _malloc
$
A titre de comparaison, voici une recherche de GetLastError
, qui est utilisé mais non défini dans mon programme:
$ i386-mingw32-nm myfile.exe | grep GetLastError
005b9034 T _GetLastError@0
00ab0370 I __imp__GetLastError@0
$
Et voici une recherche de quelque chose que je sais est dans mon programme:
$ i386-mingw32-nm myfile.exe | grep ends_with
0040a98d T _ends_with
$
penser que cela signifie que malloc()
dans ma bibliothèque C est fourni comme une couverture à un malloc()
du système, tout comme GetLastError()
, mais que ends_with()
ne figure pas dans le système. Mais je voudrais un deuxième avis.
Merci!
La solution
MinGW n'utilise pas son propre malloc
, il relie le malloc
de Windows. Alors oui, il est threadsafe, parce que Windows est.