/ / Wie kann ich die Ausgabe eines Terminalbefehls in meinem Programm verwenden? - c, Befehlszeile, Umleitung, Pipe

Wie verwende ich die Ausgabe eines Terminalbefehls in meinem Programm? - c, Befehlszeile, Weiterleitung, Pipe

Ich möchte die Ausgabe des Befehls analysieren w zur Verwendung in meinem Programm Ich weiß, dass ich ausführen kann w verwenden execlp Aber gibt es eine Möglichkeit, die Ausgabe von w direkt in mein Programm zu bekommen? Ich denke, ich könnte eine Pipe oder so etwas benutzen, aber ich weiß nicht viel darüber oder wie Pipe in einem Execlp-Befehl funktionieren.

Danke für die Hilfe

Antworten:

1 für die Antwort № 1

Benutzen popen (3):

#include <stdio.h>
main()
{
char *command="w";
FILE *fpipe = (FILE*)popen(command,"r")) );
char line[256];
while ( fgets( line, sizeof(line), fpipe))
{
printf("%s", line);
}
pclose(fpipe);
}

2 für die Antwort № 2

Ansehen popen für einen einfachen Weg, dies zu tun, obwohl es verschiedene Schwächen hat (zum Beispiel die Shell anrufen). Libslack hat auch eine popen Ersetzung (die Coprocess-Funktionen); es ist unter der GPL.


0 für die Antwort № 3

Mann Popen

(einige andere zufällige Charaktere, um den Lame-Filter zu umgehen)