2010-11-27 31 views
0

En essayant de comprendre si malloc() dans mon programme mingw32 cross-compilé est threadsafe ou pas, j'ai couru nm sur le binaire. Les résultats:Qu'est-ce que __imp__malloc dans un programme lié à mingw-32?

$ i386-mingw32-nm myfile.exe | grep malloc 
00ab04fc I __imp__malloc 
005b8e70 T _malloc 
$ 

À titre de comparaison, voici une recherche GetLastError, qui est utilisé mais non défini dans mon programme:

$ i386-mingw32-nm myfile.exe | grep GetLastError 
005b9034 T [email protected] 
00ab0370 I [email protected] 
$ 

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 
$ 

Je pense que cela signifie que malloc() dans ma bibliothèque C est fourni une couverture à un système malloc(), comme GetLastError(), mais que ends_with() n'apparaît pas dans le système. Mais j'aimerais un deuxième avis.

Merci!

Répondre

0

mingw n'utilise pas le sien malloc, il relie le Windows malloc. Donc oui, c'est threadsafe, parce que Windows est.