PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie funktioniert waitpid?



roadracer
14-08-2011, 15:38
Hallo,
ich brauche eine system()-Funktion, die stdout blockiert. Daher wollte ich sie umgehen und die Systemcalls direkt machen. Die Geschichte mit fork() und execl() ist ja auch ganz einfach, nur ich scheitere an waitpid. Mir ist es nicht klar wie ich das verdammte Ding benutzen soll: waitpid() soll nichts anderes machen als auf einen Prozess mit der PID pid zu warten und mir dann den exit-Status dieses Programmes mitzuteilen.
Ich hoffe mir kann jemand helfen.

VG

jay-t
14-08-2011, 16:41
Probiere mal sowas, oder was ähnliches.
Ich habe einfach mal Code aus einem Programm abgeändert:
(dort ging das so...)



int exe_wait_process (int process, int retval)
{
pid_t ret;
int code;

ret = waitpid ((pid_t) process, &code, 0);
if (ret != ((pid_t) process))
{
retval = 0;
return (FALSE);
}
else
{
if (WIFEXITED (code))
{
retval = (int) WEXITSTATUS (code);
return (TRUE);
}
else
{
retval = 0;
return (FALSE);
}
}
}