begin process at 2012 02 11 19:22:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Probleme fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme fonction

dimanche 2 juillet 2006 à 03:00:58 | Probleme fonction

Mini92

Plop all :)
J'ai un petit problème que j'arrive pas à regler, peut être que quelqu'un peut m'éclairer (svp)
En fait, j'ai codé un serveur qui est sensé envoyé le résultat de la commande "ping 127.0.0.1" au client.
Le problème c'est que le client ne reçoit que la dernière ligne du buffer..
ps : la fonction sprintf() ne doit pas être adaptée pour ce code.

Code:

FILE *pp;
char buf[256];
char envoi[256];

if (!(pp = popen("ping 127.0.0.1", "r")))
{
   send(csock, "Erreur popen !", 14, 0);
}
else
{
while (fgets(buf, sizeof buf, pp))
{
   sprintf(envoi, buf);
}
send(csock, envoi, strlen(envoi), 0);
pclose(pp);
}

Merci d'avance ;)

dimanche 2 juillet 2006 à 04:46:57 | Re : Probleme fonction

SAKingdom

Membre Club
Je ne sais pas si ça arrengera le problème mais essais de remplacer sprintf par strcpy. En effet sprintf n'est pas pour ça et ne fonctionne pas comme ça non plus.

___________________________________________
Les plus grands esprits trouvent toujours une solution

dimanche 2 juillet 2006 à 09:04:13 | Re : Probleme fonction

neria

C'est normal que le serveur n'envoie que la dernière ligne de "envoie", car à chaque sprintf tu écrases la valeur précédente ... Pour faire bien il faudrait deux variables et mettre dans le sprintf "%s%s", avec pour le premier %s la valeur précédente et le second la nouvelle valeur.
dimanche 2 juillet 2006 à 09:19:55 | Re : Probleme fonction

Mini92

SAKingdom > j'ai testé avec sprintf, wsprintf, strncpy, strcpy & lstrcat mais j'ai pas reussi :(
neria > sa m'a l'air compliqué comme solution, yaurai pas une fonction fait exprés des fois :D
dimanche 2 juillet 2006 à 11:31:54 | Re : Probleme fonction

vecchio56

Administrateur CodeS-SourceS
Pourquoi ton send n'est-il pas à l'intérieur du while?
Et effectivement, strcpy à la place de sprintf

_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 2 juillet 2006 à 12:03:23 | Re : Probleme fonction

Mini92

vecchio56 > Le send n'est pas dans le while car je prefèrerai envoyer tous le buffer d'1 coup, sinon je serais obligé de faire un while(recv( ... )) au niveau du client (ce qui m'embete un peu).
Merci pour vos reponses, je vais jeter un oeil (plus attentif) a strcpy :)
J'vous tiens au courant si je trouve.
dimanche 2 juillet 2006 à 12:05:45 | Re : Probleme fonction

vecchio56

Administrateur CodeS-SourceS
Dans ce cas prévois un envoi plus grand que buff, et utilise strcat

_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 2 juillet 2006 à 16:21:19 | Re : Probleme fonction

SAKingdom

Membre Club
Si tu utilise strcat, initialise la première valeur de envoi à 0

envoi[0] = 0;

Ensuite, faire une boucle en récupérent une taille indéterminé de donnée dans un buffer limité, ça sens le débordement tampon non?

___________________________________________
Les plus grands esprits trouvent toujours une solution



Cette discussion est classée dans : fonction, probleme, envoi, buf, pp


Répondre à ce message

Sujets en rapport avec ce message

Touches de fonctions [ par CHENRY ] En VC++6.0 avec les MFC, je souhaite employer les touches de fonction( F1 à F8) .Le but est:Dans un ecran de saisie, quand l'user est sur un champ de probleme d'include [ par titus0m ] bonjour,je develop sous kdev sous linux.mon probleme est un conflit entre deux include qui possede une fonction qui se nomme pareil. C'est la fonction probleme avec la fonction GetAsyncKeyState() [ par aardman ] Bonjours,Je débute dans le c, et j'ai un petit probleme avec cette fonction.Je n'arrive pas a la faire fonctionner avec un int comme argument. Par exe probleme de fonction [ par Adeon ] pourkoi certaine fonctions s'execute avant d'autre?exemple:printf(); avant cout... Adeon probleme avec la fonction pow() [ par jeani763 ] j'ai un probleme avec la fonction powvoila mon code long int lettre1=pow(110,5);vous puriez me dire ce qui ne va pas pleas Probleme avec les threads en C++ sour linux [ par benjamvs ] Bonjour,j'ai le probleme suivant a regler en C++je travaille sur les threads sous linux, avec la librairie "pthread"Lorsque je crée un thread, celui c probleme de delcaration d'une fonction [ par naru ] slt, encore moi.j'ai une fonction qui renvoie pas de résultat que je déclare comme ça :void CMonProgDlg::Ausuivant()mais il me génère tout un tas d'er probleme systray [ par damien174 ] bonjour est ce ke k'elkun sais ds kel fichier .h se trouve cette fonction : GetSafeHwnd()je voulais ajouter un icone ds le systray mais c++ builder s' [probleme etats openGL] la fonction glEnabled(...) ne *fonctionne* pas! [ par nesk01 ] bjr, je suis en train d'implementer en OpenGL un jeu sur le principe des tours de Hanoï (pour un projet en cours ) le plu gro du prog est ecrit mais probleme fonction de recherche dans mes fichier [ par fartman2001 ] Bonjour voila, j'ai un probleme avec mon projet en langage C de fin d'année, plus qu'un 5 jours et malheureusement, il foire partout. quelqu'n pourrai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales