[C/C++/Linux] sprintf vs snprintf

Voir le sujet précédent Voir le sujet suivant Aller en bas

[C/C++/Linux] sprintf vs snprintf

Message  FûT le Jeu 11 Avr 2013, 21:31

Je viens ce soir avec une petite question à 2,50 euros toute courte mais sans doute à l'explication beaucoup plus longue :
Pourquoi snprintf est il "thread safe" et sprintf non ?

Merci d'avance Very Happy

FûT

Nombre de messages : 118
Age : 26
Prénom : Raphaël
Statut : Etudiant en 3ième indu
Date d'inscription : 10/10/2010

http://ittricks.be

Revenir en haut Aller en bas

Re: [C/C++/Linux] sprintf vs snprintf

Message  iCart le Jeu 11 Avr 2013, 21:56

FûT a écrit:Je viens ce soir avec une petite question à 2,50 euros toute courte mais sans doute à l'explication beaucoup plus longue :
Pourquoi snprintf est il "thread safe" et sprintf non ?

Merci d'avance Very Happy

Un début de réponse sur stackoverflow.
De ce que j'en ai lu (et compris...), la réponse la plus simple est "ca dépend de l'implémentation"...
D'ailleurs, tu es dans quel contexte et d'ou sors tu que l'un est plus thread-safe que l'autre?

iCart

Nombre de messages : 58
Age : 27
Prénom : Sylvain
Statut : Echappé 2013
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: [C/C++/Linux] sprintf vs snprintf

Message  FûT le Jeu 11 Avr 2013, 22:09

iCart a écrit:Un début de réponse sur stackoverflow.
Oui j'ai lu cela .. et ceci aussi : http://stackoverflow.com/questions/13386352/is-sprintf-thread-safe !
Disons que l'explication reste fort vague et peut importe l'implémentation, il doit y avoir une réponse "logique" a tout cela !

En ce qui me concerne, un sprintf dans le constructor d'une shared library, sous linux, ca plante ! Tandis qu'un snprintf, non ! Rapport a l'allocation car nombre de chars inconnu ?

FûT

Nombre de messages : 118
Age : 26
Prénom : Raphaël
Statut : Etudiant en 3ième indu
Date d'inscription : 10/10/2010

http://ittricks.be

Revenir en haut Aller en bas

Re: [C/C++/Linux] sprintf vs snprintf

Message  iCart le Jeu 11 Avr 2013, 22:40

FûT a écrit:En ce qui me concerne, un sprintf dans le constructor d'une shared library, sous linux, ca plante ! Tandis qu'un snprintf, non ! Rapport a l'allocation car nombre de chars inconnu ?

Les sources pour sprintf et vnsprint sont pour le moins... cryptiques Razz
Tu as bout de code qui montre quand ca plante?

Si c'est un rapport à l'allocation, c'est peut être pas une question de thread-safety...
Détective iCart est sur l'affaire...

iCart

Nombre de messages : 58
Age : 27
Prénom : Sylvain
Statut : Echappé 2013
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: [C/C++/Linux] sprintf vs snprintf

Message  nvs le Jeu 11 Avr 2013, 23:14

qu'en dit la norme c11 ? un jour, probablement, j'irai y voir Wink









cyclops

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [C/C++/Linux] sprintf vs snprintf

Message  mvh le Ven 12 Avr 2013, 09:55

nvs a écrit:qu'en dit la norme c11 ? un jour, probablement, j'irai y voir Wink


cyclops
ASAP ... alors ?
... cheers

_________________

La fête c'est nul sans Kidibul !
... (vieux proverbe local)



mvh

Nombre de messages : 5973
Age : 104
Prénom : Marcel VANHAELEN
Statut : (fin de bail)
Win 3.1 à reprendre
Localisation : Koekeliek de Baselberg
Date d'inscription : 06/12/2006

Revenir en haut Aller en bas

Re: [C/C++/Linux] sprintf vs snprintf

Message  Contenu sponsorisé Aujourd'hui à 14:46


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum