Varargs mi amor

Varargs mi amor - C - Programmation

Marsh Posté le 03-03-2005 à 09:06:57    

Mettons que j'ai une fonction

Code :
  1. void prout(const char *pomme, ....); //superbe varargs


et que maintenant je souhaite faire une fonction prout2 appelant prout, comment faire ?
 
genre
 

Code :
  1. void prout2(const char *pomme, ...) {
  2. //traitement specifique a prout
  3. prout(??) //la j'aimerais rebalancer mes varargs (pomme, ...) a prout, mais yé né sé po kommen fèr
  4. }


 
qqun a une idée ? [:petrus75]


Message édité par chrisbk le 03-03-2005 à 09:07:46
Reply

Marsh Posté le 03-03-2005 à 09:06:57   

Reply

Marsh Posté le 03-03-2005 à 09:14:52    

oué, tu vas dans le code source de la glib et tu vas voir printf, y'a une feinte, mais je m'en souviens plus /o\


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-03-2005 à 09:17:44    

ah oué tiens jviens de trouver ca :
 

Code :
  1. int printf(const char *format, ...)
  2. {
  3.         va_list args;
  4.        
  5.         va_start( args, format );
  6.         return print( 0, format, args );
  7. }


 
vais voir [:petrus75]
gloire te sois rendue [:petrus75]

Reply

Marsh Posté le 03-03-2005 à 10:33:07    

et le va_end ?
tu veux pas utiliser vprintf ? y en a dans la glib effectivement. Mais attention http://bugzilla.gnome.org/show_bug.cgi?id=168387

Reply

Marsh Posté le 03-03-2005 à 10:36:23    

bin jveux pas printfé, jveux renvoyer ca a une ot fonction (en fait le code plus haut c'est nul, bouh bah beuh)

Reply

Marsh Posté le 03-03-2005 à 10:42:19    

ben tu peux snvprintf :)

Reply

Marsh Posté le 06-03-2005 à 14:42:44    

snvprintf ? inconnue au bataillon (et ya que dalle sur google)
 
En assembleur, c'est possible, mais gare aux conventions d'appel (oui je sais, c'est 0%-portable, mais ça marche)
 
En tous cas une autre solution m'interesse aussi

Reply

Marsh Posté le 06-03-2005 à 14:51:15    

Reply

Marsh Posté le 06-03-2005 à 14:51:21    

leneuf22 a écrit :

snvprintf ? inconnue au bataillon (et ya que dalle sur google)


vsnprintf ()


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 06-03-2005 à 14:56:21    

mais purée puisque je vous dit que c'est pas pour printf [:petrus75]
 
bande de schnigoudoulfe a lunette [:petrus75]
 
cela dit jme suis debrouillé autrement, merci [:god]

Reply

Marsh Posté le 06-03-2005 à 14:56:21   

Reply

Marsh Posté le 06-03-2005 à 15:45:38    

baika il a la classe et il va nous dire comment il a fait :o

Reply

Marsh Posté le 06-03-2005 à 16:59:25    

Ok, hé bien en effet, ça résout pas du tout le problème de chrisbk cette fonction vsnprintf.
 
Il faut empiler les arguments un à un en assembleur, je pense pas que ça soit possible autrement...
 
Sauf si chrisbk nous dit comment il a fait

Reply

Marsh Posté le 06-03-2005 à 18:06:00    

yes :D
mais comme tout le monde n'est pas C99, j'utilise les trucs de portabilité de la glib. GNOME oblige.

Reply

Marsh Posté le 06-03-2005 à 18:08:30    

leneuf22 a écrit :

Ok, hé bien en effet, ça résout pas du tout le problème de chrisbk cette fonction vsnprintf.
 
Il faut empiler les arguments un à un en assembleur, je pense pas que ça soit possible autrement...
 
Sauf si chrisbk nous dit comment il a fait


je vois pas ce que fais l'assembleur ici

Reply

Marsh Posté le 06-03-2005 à 18:22:15    

ahahah je viens de comprendre :p
mais bon, si tu sais faire avec un ..., tu sais faire avec une va_list


Message édité par Taz le 06-03-2005 à 18:22:59
Reply

Marsh Posté le 06-03-2005 à 19:26:28    

en fait, j'ai pas utiliser printf, c'est ca le truc [:vague nocturne] (j'ai juste refait une fonction cible prenant un va_arg en argument, c'est tout, voila je sais c'est minable, jvais me fouetter en mangeant des oursins)

Reply

Marsh Posté le 06-03-2005 à 19:26:52    

Taz a écrit :

je vois pas ce que fais l'assembleur ici


 
bin tu push sur la pile, c'est comme ca l'api d'introspection de kenaz fait [:franck75]

Reply

Marsh Posté le 06-03-2005 à 20:07:37    

et alors ?
 
 
je vois pas de problème, mais c'est pas grave, c'est dimanche soir, je cherche pas à comprendre

Reply

Marsh Posté le 06-03-2005 à 20:09:42    

D'ailleurs, on s'en tamponne.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed