2016-06-27 20 views
-1

Ich möchte Werte in einem Array in C mithilfe von System() sammeln.Abrufen von Werten mit System() in C

mit:

hcidump -a | egrep 'RSSI|bdaddr' | grep -A1 --no-group-separator 'bdaddr 78:A5:04:17:9F:66' | grep -Po 'RSSI:\s+\K.*' 

eine Ausgabe wie folgt aus:

-25 
-24 
-23 
-26 
-26 

und dass Werte in einem Array in C gespeichert werden soll, aber das ist nicht möglich, nehme ich an, mit:

system("hcidump -a | egrep 'RSSI|bdaddr' | grep -A1 --no-group-separator 'bdaddr 78:A5:04:17:9F:66' | grep -Po 'RSSI:\s+\K.*'"); 

Hat jemand eine Idee, wenn es einen Befehl gibt, um das zu erreichen? oder ein Workaround? Meine einzige Idee ist es, die Daten in eine Datei zu schreiben und danach die Informationen daraus zu lesen, aber ich hätte gerne eine bessere Lösung.

freundlichen Grüßen Adrian

+1

Lesen Sie über ['popen'] (http://man7.org/linux/man-pages/man3/popen.3.html). –

+1

'popen()' ist das Werkzeug der Wahl hier, vereinbart. 'system()' führt Sie nirgendwohin, Sie haben keinen direkten Zugriff auf die Programmausgabe. – tofro

+0

https://stackoverflow.com/questions/1583234/c-system-function-how-to-collect-the-output-of-the-issued-command – Mine

Antwort

2

Verwenden der link und den Befehl auszuführen, und in der while-Schleife, speichert jede einzelne Zeile in der Anordnung. Deine Arbeit ist erledigt.

Verwandte Themen