Ich habe einige Beispiele dafür, wann die Funktion auf eine andere Art und Weise funktioniert hat, die ich hoffte. Kann ich eine klare Erklärung dafür erhalten, warum es auf diese Weise funktioniert?
Code: Select all
#include
#include
#include
#include
#define N 10
int main(){
int c1, c2, t, i;
c2 = 1;
c1 = 0;
for(i = 1; i < N; i++){
switch(fork()){
case -1:
printf("Error creating process\n");
return -1;
case 0:
t = c2;
c2 = c1 + c2;
c1 = t;
break;
default:
printf("%d ", c2);
wait(NULL);
return 0;
break;
}
}
if(i == N){
printf("%d ", c2);
}
return 0;
}