|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 62 ![]() |
Bonsoir,
dans le cadre de mon stage, je dois réaliser une application en C qui doit enregistrer des adresses IP avec leur MAC dans une BD. L'application doit pouvoir vérifier plusieurs VLAN (une bonne vingtaine avec des masques de sous-réseau différents) mon problème est le suivant : j'aimerais bien threader l'application afin qu'elle fonctionne plus vite. Seulement, je remarque que lorsque mon applicationest sur le même VLAN, elle met le même temps d'exécution avec 1 thread ou avec 6 threads. voici la façon dont je réalise le ping : Code :
J'aurais bien voulu savoir comment je pourrait faire. J'ai déjà essayé de faire les ping avec les execs. Seulement, avec 6 threads, cela ralenti considérablement la machine. Est-ce qu'il y aurait un autre moyen? merci d'avance Fredonouille |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 222 ![]() |
oui
mettre un & à la fin de la commande. Cela lance en background. Tu peux donc en lancer 6 d'un coup..(enfin à la suite).
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 62 ![]() |
bonjour souviron,
je te remercie de m'avoir répondu. je viens d'essayer ta solution. je suis bien d'accord avec toi qu'avec le & les commandes sont envoyée les unes après les autres. Or mon programme me fait des erreurs que je n'avais pas ce matin. Je pense que cela est du au fait qu'il exécute la suite du programme en mettant des valeurs au pif. Est-ce que les erreurs apparaissent à cause de la fontion "system"? Je dois t'avouer que j'ai des doutes sur la réentrance ce cette fonction. Fredonouille |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 222 ![]() |
les & lancent en background.
Dans ce cas, system retourne avant la fin de l'exécution de ce qu'il lance. D'autre part, les processus se lancent dans l'ordre, mais sont exécutés quand le scheduler le décide. Puisque c'est à peu près ce que tu souhaitais (utiliser au mieux le CPU), il faudrait juste attendre que tous les processus soient terminés avant de continuer...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 62 ![]() |
Merci de ton aide.
Je suis d'accord avec toi. Seulement, je n'ai pas l'impression que mon programme fait ses ping plus rapidement. D'autant plus, lorsque j'ai rajouté le &, mon programme fait un ping sur +/- 80 adresses IP et il plante lorsque je veux récupérer la MAC adresse. Je la récupère grâce à la table arp. En programmation, je fais la même chose que pour l'IP sauf que j'envoie le résultat dans un fichier et je lis ce fichier après. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com