Je dois modifier un paramètre nommé test
à l'intérieur de process_data
et changer de cas en dehors de cette fonction en fonction de la valeur test
. Je ne pouvais pas le passer par référence en utilisant upvar
parce que le process_data
représente une fonction statique pour le traitement du paquet udp reçu, et il n'acceptera pas plus de deux paramètres 'taille et données'.
Aussi, autant que j'ai trouvé, il n'y a aucune valeur retournée pour la fonction process_data
.Comment passer en référence à une fonction qui n'acceptera pas de nouveaux arguments?
code:
set test "0"
Agent/UDP instproc process_data {size data} {
//some stuff
if (...)
set test "1"
}
// switch cases depending on test value.
Je ne suis pas un expert en codage tcl, donc pouvez-vous s'il vous plaît modifier votre réponse à être plus précis où mettre chacun, utiliser mon exemple, si vous le souhaitez. Merci –
@EmadAldeen: fait. –
A l'intérieur de 'process_data', je peux changer' test' comme j'aime, mais en dehors de 'process_data' il reste" 0 "comme je l'ai défini au début. –