Si vous écrivez une application multithread qui utilise des appels système / bibliothèque qui utilisent errno pour indiquer le type d'erreur, existe-t-il un moyen sûr d'utiliser errno? Sinon, existe-t-il un autre moyen d'indiquer le type d'erreur qui s'est produite plutôt que simplement qu'une erreur s'est produite?
Réponses
Trop de publicités? Si votre bibliothèque standard est compatible avec le multithread, alors elle a probablement un #define
qui change errno
en un appel de fonction qui renvoie une valeur de retour d'erreur de thread local. Cependant, pour l'utiliser, vous devez généralement inclure <errno.h>
, plutôt que de vous fier à une déclaration extern
.
J'ai trouvé un article sur la sécurité des threads et POSIX.1 qui répond à cette même question.
qrdl
Points
17813