Ich weiß leider nicht so genau wie ich diese Frage richtig stellen soll, deshalb hab ich darunter auch nichts gefunden.
Ich hab ein Programm geschrieben, in dem mehrere forks und system Befehle sind, jetzt möchte ich, im Prinzip ALLES was im Terminal bei Programmstart erscheint auslesen. Momentan wollte ich das ganze so regeln:
Das funktioniert auch. Aber leider nur bei den Ausgaben die ich selber verursache, also z.B. wenn ich einen Befehl (im Hauptprogramm) im fork prozess mit einem system Befehl ausführe und dieser z.B. ein Fehler verursacht, dass man nur als root Rechte dafür hat, dann bekomme ich diese Meldung nicht in meinen Buffer.
Also ich hoffe das kann man überhaupt verstehen so wie ich das geschrieben hab
Die Frage ist also nun mehr oder weniger, wie ich (egal wie), wirklich ALLES was ich im Terminal sehe in den buffer bekomme, also auslesen kann? Geht das überhaupt?
Danke für jede Hilfe
Ich hab ein Programm geschrieben, in dem mehrere forks und system Befehle sind, jetzt möchte ich, im Prinzip ALLES was im Terminal bei Programmstart erscheint auslesen. Momentan wollte ich das ganze so regeln:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
FILE*fd=popen("cd pfad/zur/datei && ./datei", "r");
char buffer[200]="";
while (fgets(buffer, 200, fd))
{
printf("*%s*", buffer);
}
return 0;
}
Das funktioniert auch. Aber leider nur bei den Ausgaben die ich selber verursache, also z.B. wenn ich einen Befehl (im Hauptprogramm) im fork prozess mit einem system Befehl ausführe und dieser z.B. ein Fehler verursacht, dass man nur als root Rechte dafür hat, dann bekomme ich diese Meldung nicht in meinen Buffer.
Also ich hoffe das kann man überhaupt verstehen so wie ich das geschrieben hab
Die Frage ist also nun mehr oder weniger, wie ich (egal wie), wirklich ALLES was ich im Terminal sehe in den buffer bekomme, also auslesen kann? Geht das überhaupt?
Danke für jede Hilfe