Hallo Konrad,
das war exakt, wonach ich suchte. Herzlichen Dank für die Mühe! Ich hoffe, ich verstehe alles. Ansonsten werde ich mich evtl. noch einmal melden.
Gruß, Orm
Am 24. April 2005, 17:13 Uhr (+0200) schrieb Konrad Rosenbaum:
Starte das Shell-Script von dem C-Programm aus mit einer Pipe:
int pfd[2],pid;
pipe(pfd); if(pid=fork()){ /*Elternteil*/ read(pfd[0],...) waitpid(pid,0,0); } else { /*Kind*/ /*ersetze stdout durch pipe*/ close(STDOUT_FILENO); dup2(pfd[1],STDOUT_FILENO); /*führe script aus*/ fcntl(STDOUT_FILENO,F_SETFD,0); execl("/bin/sh","/pfad/zu/deinem/script",0); /*Hoppla! Script konnte nicht ausgeführt werden!*/ exit(1); } close(pfd[0]);close(pfd[1]);
/*hier kennst Du die PID von read...*/
Das ganze könnte sicherheitstechnisch noch etwas umgemodelt werden, aber man muss schon verdammt clever sein, um hier noch was auszunutzen.
Konrad
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd