Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1623 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Resolu[c]comment ecrire un entier en parametre de write

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Resolu[c]comment ecrire un entier en parametre de write

n°351920
psebcopath​e
Posté le 03-04-2003 à 18:03:28  profilanswer
 

Bonsoir ,  
petit pb bien pete cul , j'arrive pas a envoyer un entier avec write , si je caste cet entier en chaine de caractere ca plante .
En fait je veux envoyer une chaine de caractere fixe suivie d'un entier , indefini , sans que ca plante .
 
write(pipe_in[1],buff,strlen(buff));
avec mon buff = "next" + nbre entier .
Y'aurais pas un equivalent de sscanf en ecriture pour un formatage correct?
J'ai essaiyé sprintf , , ca a pas marché...
merci d'avance.


Message édité par psebcopathe le 03-04-2003 à 21:16:50
mood
Publicité
Posté le 03-04-2003 à 18:03:28  profilanswer
 

n°351932
Taz
bisounours-codeur
Posté le 03-04-2003 à 18:16:00  profilanswer
 

montre ton utilisation de sprintf stp

n°351960
Konar
Posté le 03-04-2003 à 18:45:03  profilanswer
 

vite fait (doit y avoir mieux):
 

Code :
  1. char str[] = "truc";
  2. int len = lstrlen(str);
  3. int nb = 12;
  4. char *buf = new char[len + sizeof (int)];
  5. CopyMemory(buf, str, len);
  6. CopyMemory(buf + len, (char*)&nb, sizeof (int));
  7. write(pipe, buf, len + sizeof (int));
  8. delete[] buf;


 
quand t'as essayé de caster ton int en char*, t'avais bien mis &int et comme taille sizeof (char) ? normalement ca pose pas de pb particulier...

n°352041
psebcopath​e
Posté le 03-04-2003 à 21:15:52  profilanswer
 

bon , ben je vous remercie , j'ai essayé avec ta methode , et j'y suis pas arrive, car je suis sous linux , en C , et le new , il connait pas apparement ...
donc je me suis demerde autrement et ca marche.
Certes c'est plus complique :

Code :
  1. #include <stdarg.h>
  2. void mplayer_pl_next (int number)
  3. {
  4.      mplayer_pl_next_previous_stage2("pt_step %d",number);
  5. }
  6. void mplayer_pl_next_previous_stage2 (const char *format, ...)
  7. {
  8.     va_list ap;
  9.     char *buff=0;
  10.    
  11.     va_start(ap,format);
  12.     vasprintf(&buff,format,ap);
  13.       pthread_mutex_lock (&mplayer_mutex);
  14.     write_mplayer_cmd (buff);
  15.     pthread_mutex_unlock (&mplayer_mutex);
  16.     va_end(ap);
  17. }

n°352156
Taz
bisounours-codeur
Posté le 03-04-2003 à 23:09:49  profilanswer
 

c'est quoi copy memory?

n°352206
Konar
Posté le 04-04-2003 à 01:17:59  profilanswer
 

arf. trop de c-unix dans la vie.
 
t'as quand meme droit a malloc ?
Dans ce cas essayes ca a la place du new :

Code :
  1. char *buf = (char*)malloc((len + sizeof (int)) * sizeof (char));


 
Pour l'équivalent de CopyMemory(), si me souviens bien y a memcpy() ki existe, par contre me souviens plus du .h correspondant.

n°352220
Taz
bisounours-codeur
Posté le 04-04-2003 à 07:21:23  profilanswer
 

<string.h>
 
et c'est une fonction optimisée, donc bien plus rapide. ca fait 2 fois en une semaine que je vois des focntions persos pour faire ça

n°352431
Konar
Posté le 04-04-2003 à 10:44:53  profilanswer
 

++Taz a écrit :

<string.h>
 
et c'est une fonction optimisée, donc bien plus rapide. ca fait 2 fois en une semaine que je vois des focntions persos pour faire ça


 
euh... la je te suis plus. CopyMemory c'est pas trop une fct perso (définie dans winbase.h)
 
Apres, va savoir laquelle est la plus optimisée...
(Y a aussi une histoire d'exception je crois)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Resolu[c]comment ecrire un entier en parametre de write

 

Sujets relatifs
question sur le passage d'un pointeur en paramètre[Resolu (Merci MagicBuzz)] Problème pour lire un flux de byte en C#
Question mysql pour un débutant... RESOLU grace a Mr yvele MerciComment faire pour ecrire dans la base mysql la date a la française ?
Formater un texte en php ? RESOLU ca marche avec le \n[Resolu] timeout sur un recv(...) ca existe?
Resolu[c/Linux]Comment recupérer les infos d'un pipe sans perte de don[resolu]selectionner automatiquement toutes les option d'1 select
[Résolu] Un GetWindowText qui plante...OnMouseOver -> afficher une autre image ? [RESOLU]
Plus de sujets relatifs à : Resolu[c]comment ecrire un entier en parametre de write


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR