Résultat du ping sur linux en c

Fermé
lolokiller91 Messages postés 102 Date d'inscription mercredi 27 août 2008 Statut Membre Dernière intervention 18 avril 2011 - 30 mai 2010 à 12:22
dubcek Messages postés 18728 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 29 mai 2024 - 30 mai 2010 à 15:29
Bonjour,

Je suis actuellement sur linux et j'ai trouvé le moyen d'envoyer un ping avec la commande:

system(" \n ping -c 4 198.0.0.1\n ");



Est qu'il ya un moyen pourque cette commande renvoie 1 si le ping reussi ou 0 si il rate ?

Merci davance
A voir également:

3 réponses

EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
30 mai 2010 à 12:30
Les commandes ont une valeur de retour qui est récupérable à partir de la variable $? dans les scripts shell mais en C je ne vois pas comment faire bien que je pense qu'il y ait un moyen.

En cherchant 3s sur Google il semble que tu n'ais pas lu la doc de la commande system que tu utilises.
Elle renvoi apparemment le code de retour et il suffit donc de le récupérer dans une variable comme on le ferait pour n'importe quelle valeur de retour d'une fonction de ton code.
Je fais cette déduction d'après un code visible ici.
0
lolokiller91 Messages postés 102 Date d'inscription mercredi 27 août 2008 Statut Membre Dernière intervention 18 avril 2011 5
30 mai 2010 à 12:47
J'étais au courant de cette facon de proceder. Mais sur linux ca renvoie des valeur du genre 256 ect....
Mais en fait je suis trop con, il suffit juste que la variable que est destnée a recupere la valeur soit un variable bool.
Et comme ca on a un 0 si sa marche et un 1 si sa rate.
0
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
30 mai 2010 à 13:11
Le problème semble bel et bien évoqué dans ce topic.
0
dubcek Messages postés 18728 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 29 mai 2024 5 615
30 mai 2010 à 15:29
hello
la page man de system décrit la valeur retournée, pour différencier la valeur retournée par la commande d'une erreur d'exécution du shell ou de la commande
RETURN VALUE
The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is in the format specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status). In case /bin/sh could not be executed, the exit status will be that of a command that does exit(127).

If the value of command is NULL, system() returns non-zero if the shell is available, and zero if not.
0