voila c'est tout bete mais je m en sort pas, je veux faire une sorte de strdup+printf (la fonction existe deja mais ne passe pas sur toute les archi)

donc je fais simplement un 1ere printf pour reccuperer la taille de ma chaine de char
puis un malloc
puis un sprintf

mais le souci est que le 1er printf affiche sur la sortie standard
ce qui est indesirable (le but de ma fonction etant de copier la chaine de char dans un char * et non pas de faire de l'affichage)

donc comment puis je rediriger la sortie standard de ma fonction pour qu'elle ne soit pas visible a l'ecran (de preference vers /dev/null ou tout autre methode compatible multi archi)

un bout de code pour aider :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void	*dprintf(const char *format, ...)
{
  va_list	va;
  char		*tmp;
  int		len;
 
  va_start(va, format);
  len = vprintf(format, va);  // inhiber celui la
  if (!(tmp = malloc(sizeof(*tmp) * (len + 1))))
    {
      printf("Malloc : [FAILED]\n");
      return (0);
    }
  vsprintf(tmp, format, va);
  va_end(va);
  return (tmp);
}
merci