Récupérer quelques champs du retour système unix en C

Résolu/Fermé
sarrra Messages postés 8 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 6 juin 2013 - 6 juin 2013 à 10:27
sarrra Messages postés 8 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 6 juin 2013 - 6 juin 2013 à 12:44
Bonjour,
Je voudrais savoir comment récupérer quelques champs du retour système unix en C.
Mon exemple:

system(ma_commande);


Retour système est:

RSSI return value: 0

Je veux récupérer que 0

Merci pour votre aide.

A voir également:

4 réponses

dualife_ Messages postés 153 Date d'inscription dimanche 31 mars 2013 Statut Membre Dernière intervention 21 novembre 2020 45
6 juin 2013 à 10:54
Salut,
commence déjà par la:
https://linux.die.net/man/3/system
mais système ne retourne pas de chaine,
seulement un status de la commande que tu a lancé
ce que tu obtiendrai avec
$> echo $?
mais la commande est lancée dans un autre processus sur lequel tu n'a pas la main.
tu doit faire autement
1
dualife_ Messages postés 153 Date d'inscription dimanche 31 mars 2013 Statut Membre Dernière intervention 21 novembre 2020 45
6 juin 2013 à 10:36
char* str=''RSSI return value: 0";
int return_value = atoi(&str[19]);
0
sarrra Messages postés 8 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 6 juin 2013
6 juin 2013 à 10:46
Merci dualife, ça c'est la solution pour prendre la valeur 0.
Mais le problème c'est comment récupérer la chaine retournée avec le système et la mettre dans une chaine de caractère.
0
sarrra Messages postés 8 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 6 juin 2013
6 juin 2013 à 12:44
Une solution possible en utilisant popen décrite dans ce lien:
https://www.microsoft.com/en-us/download/details.aspx?id=55984
0