Mike_ledis Δημοσ. 6 Απριλίου 2010 Δημοσ. 6 Απριλίου 2010 Καλησπέρα.Έχω δημιουργήσει ένα πρόγραμμα σε c το οποίο δέχεται των αριθμό των διεργασιών που δημιουργεί ώς το πρώτο όρισμα απο την κονσόλα.Ύστερα με την βοήθεια της συνάρτησης fork δημιουργεί τις διεργασίες οι οποίες απλά εκτυπώνουν το id τους και μετα κλείνουν.Ήθελα να ρωτήσω αν υπάρχει κάποιος πρόθυμος να μου το μετατρέψει η να με βοηθήσει να το μετατρέψω σε bash script.Παραθέτω το πρόγραμμα παρακάτω. /*Με την κλήση συστήματος fork δημιουργούμε τόσες διεργασίες όσες δίνονται από το πρώτο όρισμα του προγράμματος*/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> main(int argc, char **argv) { int pid,i; int pnumber; pnumber=atoi(argv[1]);//Μετατρέπουμε το πρώτο όρισμα του προγράμματος σε int για να μπορούμε να το χειριστούμε for(i=1;i<=pnumber;i++){ pid=fork();//Χρησιμοποιούμε την fork για να δημιουργήσουμε τις θυγατρικές διεργασίες if(pid!=0) { //εφόσον η θυγατρική διεργασία δέν κάνει τίποτα πρέπει να τερματίζεται με ένα μύνημα printf("To id της %dης διεργασίας που δημιουργείτε είναι:%d και είναι διεργασία παιδί \n",i,pid); printf("ΕΠΙΣΤΡΟΦΗ\n"); exit(1); } } }
pinball_elf Δημοσ. 7 Απριλίου 2010 Δημοσ. 7 Απριλίου 2010 Δεν είναι ακριβώς αυτό που ζητάς γιατί δεν υπάρχει αντίστοιχη συνάρτηση της fork στο bash κέλυφος, ή εγώ δεν την γνωρίζω. Το παρακάτω script είναι μία προσέγγιση του C κώδικα σου: > #!/bin/bash if [ "_$1" = "_" ]; then echo "pid of child $childno is $$" echo "return" else i=0 while [ `expr $i \< $1` = 1 ]; do i=`expr $i + 1` childno=$i export childno sh $0 done fi
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.