Archiv verlassen und diese Seite im Standarddesign anzeigen : system call einem array zuweisen?
hi
wie kann ich einem array das ergebniss eines systemcalls zuweisen?
z.b.
char buffer[1025] = system(echo bla);
dass dann im buffer bla steht.
muss ich da was mit stdout oder so machen ?
Das ist etwas umständlicher. Entweder Du fängst stdout ab (wobei ich nicht weiß, wie das geht, wahrscheinlich irgendwelche Pointer im DOS umbiegen), oder Du leitest die Ausgabe in eine Temp-Datei um und liest die hinterher ein. Um letzteres zu tun, mußt Du noch "COMMAND.COM" (bzw. CMD bei WinNT) davorsetzen, der dann die Umleitungsoption parst.
hehe :)
code unter linux :)
dass mit der externen datei habe ich auch schon im sinn gehabt, doch wenn dem array in 5secs 10mal ein neuer wert zugewiesen wird ist das warscheinlich ein bisschen schlecht und es kommt auch nicht so professionell :(
Das mit Linux mußt Du ja auch dazuschreiben! 8)
Was ist das denn für´n Proggi, das Du da aufrufst? Gibt´s da keine andere Möglichkeit? Wenn Du den Sourcecode davon hast, könntest Du das entweder komplett in Deins integrieren (soweit rechtlich erlaubt), oder Du modifizierst es so, daß es mit Deinem Programm kommunizieren kann (z. B. über TCP/IP, falls Linux da nichts besseres bietet, wie es OS-9 z. B. tut).
was haltet ihr von einer pipe?
Erst pipe()`ed ihr, dann fork()`ed ihr und richtet eine stdin-stdout-verbindung ein. Besser gehts meines Achtens nicht.
danke ich werde es mal probieren
Probier mal die Funktion popen():
#include <stdio.h>
FILE *popen(const char *command, const char *type);
int pclose(FILE *stream);
Damit sollte sich das eigentlich machen lassen. Benötigt auch kein fork() mehr, afaik.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.