Résultat du ping sur linux en c

lolokiller91 Messages postés 116 Statut Membre -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
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 2499 Statut Membre 318
 
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 116 Statut Membre 5
 
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 2499 Statut Membre 318
 
Le problème semble bel et bien évoqué dans ce topic.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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