BookOfLove
Cadet 3rd Year
- Registriert
- Dez. 2015
- Beiträge
- 32
Ich habe folgende Funktion:
Falls b UNGLEICh 0 ist, soll a*b zurückgegeben werden.
Falls nicht(Also b GLEICH 0), soll ein Kindprozess erzeugt werden, der Elternprozess soll auf die Beendigung des Kindprozesses warten und den Statuscode als Rückgabewert von mul zurückgeben.
Ich bin mir unsicher, ob wait(&status) der Statuscode ist oder WEXITSTATUS(status) richtig ist
Falls b UNGLEICh 0 ist, soll a*b zurückgegeben werden.
Falls nicht(Also b GLEICH 0), soll ein Kindprozess erzeugt werden, der Elternprozess soll auf die Beendigung des Kindprozesses warten und den Statuscode als Rückgabewert von mul zurückgeben.
Ich bin mir unsicher, ob wait(&status) der Statuscode ist oder WEXITSTATUS(status) richtig ist
Code:
int mul(int a, int b)
{
pid_t child_pid;
int status;
if(b==0)
{
child_pid = fork();
if(child_pid >=0)
{
if(child_pid>0)
{
wait(&status);
return WEXITSTATUS(status); //Ist dies der Statuscode?
}
}
else
{
printf("Es ist ein Fehler aufgetreten");
return 1;
}
}
return a*b;
}