Je veux définir la date limite par défaut pour le ping dans certains fichiers de paramètres ou autre. Mon programme se bloque lorsque vous essayez de vous connecter à une adresse IP non-ping.
Dans le terminal, je peux appeler "ping 123.0.0.1 -w 5" et cela ne durera pas éternellement, mais je ne peux pas définir d’échéance dans le code.
Réponses:
3 pour la réponse № 1Solution Shell:
Dans ton .bashrc
ajoutez ce qui suit:
function ping {
/bin/ping $@ -w5
}
Ceci créera une fonction wrapper, qui fixera le délai d’attente à 5 secondes pour tous les appels à ping
Remarque: la version ci-dessus écrasera un -w
param utilisé en ligne de commande. Si vous voulez toujours pouvoir écraser le délai d’expiration par défaut via la ligne de commande, placez le -w5
avant le $@
:
function ping {
/bin/ping -w5 $@
}
Solution Pure C:
Je ne donnerai pas un exemple complet par souci de concision. Vous pouvez en trouver un ici par exemple. Dans l'exemple donné, vous devrez remplacer le recvfrom()
appel qui lit la réponse ICMP et peut bloquer par un select()
ou poll()
appeler avec un délai d'attente.