ciò che è __imp__malloc in un programma legato mingw-32?
Domanda
Nel tentativo di mattina per capire se malloc()
nel mio programma cross-compilato mingw32 è threadsafe o no, mi sono imbattuto nm
sul binario. I risultati:
$ i386-mingw32-nm myfile.exe | grep malloc
00ab04fc I __imp__malloc
005b8e70 T _malloc
$
Per fare un confronto, ecco un ricerca GetLastError
, che viene utilizzato ma non definito nel mio programma:
$ i386-mingw32-nm myfile.exe | grep GetLastError
005b9034 T _GetLastError@0
00ab0370 I __imp__GetLastError@0
$
E qui è una ricerca di qualcosa che so è nel mio programma:
$ i386-mingw32-nm myfile.exe | grep ends_with
0040a98d T _ends_with
$
I pensare che questo significa che malloc()
nella mia libreria C è fornito come copertura per un malloc()
sistema, in quanto è GetLastError()
, ma che ends_with()
non compare nel sistema. Ma mi piacerebbe un secondo parere.
Grazie!
Soluzione
MinGW non usa il proprio malloc
, collega il malloc
di Windows. Quindi sì, è threadsafe, perché Windows è.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow