InDiO Δημοσ. 29 Ιουλίου 2003 Δημοσ. 29 Ιουλίου 2003 Γειά και πάλι. Έχω μια πατρική διεργασία που φτιάνει νέες διεργασίες, οι οποίες χρησιμοποιώντας την συναρτηση execlp(), καλούν διεργασίες που ορίζει ο χρήστης από ένα αρχείο. Ένας proccess sceduler δηλαδή με επιλογή για διάφορετικούς αλγόριθμους εκτέλεσης. Οταν καλείται η exec, τότε χάνουμε τον έλεγχο της διεργασίας που την κάλεσε. Γιαυτό η πατρική για να εκτελέσει κάποιο από τα προγράμματα χρήστη κάνει fork() και κατόπιν execlp(). Ακριβώς από κάτω κάνω wait το pid που επιστρέφει στην πατρική το fork. Γιατι παιρνω error;; Αλλάζει το pid της proccess η exec; > if( (pid=fork())<0) { perror("Error forking new proccess!\n"); exit(1); } if(pid==0) { char *file=ptr->name; if((execlp(file,NULL))<0){ printf("Proccess %s was not found or could not be executed.\n",ptr->name); //exit(1); } } if((waitpid(pid,status,NULL))<0){ printf("Error waiting proccess %s \n",ptr->name);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.