[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] [OT] Programmation: petites questions...



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Salut,

Je dois programmer un proxy cache pour mes études, tout se passe bien 
Juste une ou deux petites questions...

1) Y a -t-il moyen de rendre les opérations sur la mémoire synchrones? 
Parce que je dois jouer avec des zones mémoires "assez grandes" ou 
faire des realloc (puisque je ne sais pas a priori la taille de ce que 
je reçois...). Le problème est que je suis obligé de mettre un usleep 
pour freiner le processus sinon, quand je boucle, je reviens sur le 
recv() et les opérations mémoires sont corrompues... (même si je vire 
le realloc). C'est sans doute une bêtise mais je ne la vois pas. Je 
précise que je programme en multithread et donc que ce code peut 
tourner un nombre indéterminé de fois en même temps

voici le code incriminé: 

 do {
	if ((nbreBytesRecus = recv(handler, msgrcv+totrecu, 
				  TAILLEMSGMAX, 0)) == -1) {
			DD("Rien recu... \n"," ");
			perror("pas de reception\n");
			return NULL;
	}
	else {
		sprintf(tg,"%d",nbreBytesRecus);
		DD("nbreBytesRecus : %s\n",tg);
			
		usleep(100000);
		fflush(NULL);
		totrecu += nbreBytesRecus;
			
	}
}while (nbreBytesRecus != 0 && nbreBytesRecus == TAILLEMSGMAX &&
          nbreBytesRecus != -1);

Voilà c'est l'essentiel...

Si quelqu'un a une solution..

D'avance merci

Ben
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8A24yLPnuiaZn1q4RAinsAJ0eRyn0ko8Cmp14JassPrz68rhweQCfZcKI
hxHmN95enTkANjPy26algqE=
=Mjne
-----END PGP SIGNATURE-----

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
[ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
[ http://unixtech.be              Contact: listmaster@unixtech.be  ]