jessica12345
Newbie
Hallo,
vielleicht kann mir jemand weiterhelfen. Bin noch etwas ein Linux-"Greenhorn", muss aber schon eine relativ schwere Aufgabe lösen.
Ich soll ein C-Programm schreiben ( dies hab ich noch einigermaßen hingekriegt, siehe unten ) dem beim Aufruf der Name eines anderen Programm als Kommandozeileninterpreter mitgegeben wurde ( z.b. "c-code" xclock ). Der c-Code soll dieses Programm als neuen Prozess starten.
c-Code:
Wenn kein Programm mitgegeben wurde, soll HIlfe ausgegeben werden, wenn der Kindprozess beendet ist, soll der c-Code sofort eine neue Instanz des Prozesses starten.
Wie kann ich dieses C-Programm jetzt mit z.b. der bash über das Terminal verbinden ?
Tausend Dank und LG
Jessica
vielleicht kann mir jemand weiterhelfen. Bin noch etwas ein Linux-"Greenhorn", muss aber schon eine relativ schwere Aufgabe lösen.
Ich soll ein C-Programm schreiben ( dies hab ich noch einigermaßen hingekriegt, siehe unten ) dem beim Aufruf der Name eines anderen Programm als Kommandozeileninterpreter mitgegeben wurde ( z.b. "c-code" xclock ). Der c-Code soll dieses Programm als neuen Prozess starten.
c-Code:
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
int stop=0;
void out ()
{stop=1;}
int main (int argc,char *argv[])
{
signal ( 1, out );
if (argc<=1)
{ printf (�Error, Parameter fehlt �);
exit(1);
}
while (stop!=1)
{
pid_t pid=fork()
if (pid==-1)
{
printf((�error bei fork()�);
exit(1);
}
else if (pid==0)
{
execlp(argv[1],argv[1],NULL);
}
else {
printf((�Beenden Kinderprozess�);
if(waitpid(pid,NULL,O)==pid)
}
return 0;
}
Wenn kein Programm mitgegeben wurde, soll HIlfe ausgegeben werden, wenn der Kindprozess beendet ist, soll der c-Code sofort eine neue Instanz des Prozesses starten.
Wie kann ich dieses C-Programm jetzt mit z.b. der bash über das Terminal verbinden ?
Tausend Dank und LG
Jessica