Μπορεί κάποιος να μου λύσει αυτό το θεματάκι που βρήκα γιατί έχω μπερδευτεί;
Γράψτε ένα πρόγραμμα σε C που με την εκτέλεσή του να δημιουργεί 4 διεργασίες-παιδιά.
Η διεργασία-πατέρας θα αρκείται στο να τυπώνει ένα μήνυμα χαιρετισμού προς το χρήστη, πριν αρχίσει τη
δημιουργία των διεργασιών-παιδιών.
Η πρώτη διεργασία-παιδί θα τυπώνει το PID της καθώς και το PID του πατέρα της στην οθόνη αλλά θα
γράφει τις πληροφορίες αυτές και σε ένα αρχείο με όνομα mypids.txt.
Η δεύτερη διεργασία-παιδί θα εμφανίζει τα περιεχόμενα του τρέχοντος καταλόγου.
Η τρίτη διεργασία-παιδί θα μετονομάζει ένα αρχείο με ορίσματα που παίρνει από τη γραμμή εντολών.
Η τέταρτη διεργασία-παιδί θα τυπώνει στην οθόνη το PID της πρώτης διεργασίας-παιδί, πληροφορία που θα
λάβει από το αρχείο mypids.txt.
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε
Σχόλια
Μέχρι που το έχεις φτάσει το πρόβλημα και που κολάς;
Κάνε αμά μπορείς ένα c/p τι έχεις γράψει μέχρι στιγμής.
οκ,τα έκανα εκτός από το παρακάτω.
Η τρίτη διεργασία-παιδί θα μετονομάζει ένα αρχείο με ορίσματα που παίρνει από τη γραμμή εντολών.
μπορεί να μου το πει κάποιος;
Διάβασε για τα ορίσματα της main.
Οσον αφορά τα ορίσματα στην main έχω κάνει post και σε ένα ακόμη thread ασκηση με σήματα. Η εντολή που θα χρειαστείς για τα files θα είναι σίγουρα αρχικά η fopen (test) με παραμετρο r για το υπάρχον αρχείο (μόνο read) ΙΔΕΑ "Με μια while θα μεταφέρεις τα περιεχόμενα του μέσω ενός πίνακα χαρακτήρων πχ buf[256]" και στη συνέχεια με την fopen με παραμετρο a για να κάνει write το buf στο νέο αρχείο (mirrortest)Αν έχεις βιβλία καλό είναι βέβαια να διαβάσεις περί ορισμάτων arguments .
(program) (test) (mirrortest)
Η ΑΕΚ ειναι κυρίως ιδέα και οι ιδέες δεν αποθνήσκουν
Θα χρειαστείς τη argc(argument count) και την argv[] (argument vector). Η πρώτη κρατά τον αριθμό των ορισμάτων η δε δεύτερη τα ίδια τα ορίσματα. Πρόσεξε όμως, το argv[0] κρατά πάντα το όνομα του προγράμματος που τρέχει, εσύ θα ασχοληθείς με το argv[1] και μετά.
Άρα η main σου θα είναι κάπως έτσι:
int main(int argc, char *argv[])
Αν θες να περάσεις και έλεγχο αν ο χρήστης έχει περάσει παράμετρο στο
πρόγραμμα τότε γράψε μετά την δήλωση της main κάτι σαν και αυτό:
if(argc > 0)
{
// Εκτέλεσε τον κώδικα
}
else
{
// Error
}