gms20 Δημοσ. 12 Ιανουαρίου 2009 Δημοσ. 12 Ιανουαρίου 2009 Καλησπέρα! σας παραθέτω εδω την εκφωνηση μιας εργασιας που εχω.... >[i] [b] Άσκηση[/b] Να κατασκευάσετε ένα πρόγραμμα στο οποίο μια διεργασία αφού ελέγχει την τιμή της προτεραιότητάς της, αν αυτή είναι μικρότερη από το 8, τότε θα την υποβαθμίζει σε 8. Έπειτα ελέγχει ποιος είναι ο βασικός της κατάλογος, κατασκευάζει ένα κατάλογο με όνομα temp, στη συνέχεια βρίσκει τις πληροφορίες για τα περιεχόμενα του βασικού της καταλόγου και αποθηκεύει τα δεδομένα σε ένα αρχείο με όνομα contents.txt στον κατάλογο temp. Στη συνέχεια δημιουργεί μία νέα διεργασία. Η θυγατρική διεργασία θα ανοίγει το αρχείο contents.txt και θα διαβάζει τις πληροφορίες για τα αρχεία και τους καταλόγους που περιέχονται στο βασικό κατάλογο. Θα εμφανίζει τα περιεχόμενα χωρισμένα σε δύο στήλες: στην μία οι κατάλογοι και στην άλλη τα αρχεία. Τα δεδομένα θα εμφανίζονται στις στήλες ταξινομημένα με βάση το χρόνο. Στο διάστημα αυτό η πατρική της διεργασία περιμένει την ολοκλήρωσή της. [/i] την εργασια την εχω μισοτελειωσει αλλα εδω και τρεις μερες παλευω να βρω μια λυση στο προτελευταιο ζητημα της ασκησης που λεει "Θα εμφανίζει τα περιεχόμενα χωρισμένα σε δύο στήλες: στην μία οι κατάλογοι και στην άλλη τα αρχεία. Τα δεδομένα θα εμφανίζονται στις στήλες ταξινομημένα με βάση το χρόνο." το αρχειο contents.txt και τα δεδομενα του τα δημιουργω με αυτην την εντολη: "ls -l > temp/contents.txt" και τα δεδομενα ειναι καπως ετσι: >σύνολο 60 -rwxr-xr-x 1 gms gms 9463 2009-01-08 03:39 a.out -rwxrwxrwx 1 gms gms 2312 2009-01-10 18:33 ask1.c drwxr-xr-x 2 gms gms 4096 2009-01-11 22:47 greek -rw-r--r-- 1 gms gms 874 2009-01-09 19:30 pro32.c -rw-r--r-- 1 gms gms 713 2009-01-09 19:15 pro3.c -rwxrwxrwx 1 gms gms 3213 2009-01-11 23:00 project1.c -rw-rw-rw- 1 gms gms 3146 2009-01-11 06:08 project1.c~ drwxr-xr-x 2 gms gms 4096 2009-01-11 00:50 temp -rwxr-xr-x 1 gms gms 9621 2009-01-11 23:00 test -rw-r--r-- 1 gms gms 638 2009-01-09 19:45 test2.c -rwxrwxrwx 1 gms gms 1740 2009-01-10 17:45 test.c -rw-r--r-- 1 gms gms 0 2009-01-11 22:48 νέο αρχείο οταν διαβαζω το txt,διαβαζω τη καθε λεξη με τη σειρα με την εντολη fscanf ... για να "διαβασω" τη λεξη a.out στη πρωτη γραμμη πρεπει να γραψω 7 φορες fscanf για να φτασω σε αυτην.δηλαδη για να διαβαζω την τελευταια στηλη που ειναι τα αρχεια,χρησιμοποιω δυο επαναληψεις εγω... το θεμα ειναι : πρωτον με αυτο το τροπο δε μπορω να τα ταξινομησω και δευτερον και πιο σοβαρο προβλημα στην τελευταια γραμμη το αρχειο λεγεται " νέο αρχείο",το οποιο η εντολη fscanf διαβαζει μονο το "νέο" οποτε καταλαβενετε εχω προβλημα! συγνωμη που σας κουρασα αλλα μπως μπορειτε να μου πειτε αν υπαρχει καποιος αλλος τροπος να επεξεργαστω τα δεδομενα του txt?
gms20 Δημοσ. 12 Ιανουαρίου 2009 Μέλος Δημοσ. 12 Ιανουαρίου 2009 φιλε μου σε ευχαριστω παρα μα παρα πολυ... ετοιμαζομουν τωρα να χρησιμοποιησω structs και γενικα να κανω ολοκληρη "ιστορια" μονο και μονο για την ταξινομηση. το μονο προβλημα που μενει τωρα ειναι με τα ονοματα των αρχειων,αλλα νομιζω δε μπορω να το αποφυγω. θα πρεπει να φροντισω στο βασικο μου φακελο να μην υπαρχουν αρχεια με περιεργα ονοματα!! και παλι ευχαριστω....
Επισκέπτης Δημοσ. 12 Ιανουαρίου 2009 Δημοσ. 12 Ιανουαρίου 2009 Επειδη οι στήλες σου ειναι συγκεκριμένες πάντα(8 στην περιπτωσή σου) όταν διαβάσεις μια γραμμή θα τη κάνεις split με την strtok 7 φορές και θα πάρεις το τελευταιο κομμάτι του string όπως ειναι...αυτό θα σου λύσει το πρόβλημα των ονομάτων αρχείων που έχουν κενά μέσα τους...
gms20 Δημοσ. 12 Ιανουαρίου 2009 Μέλος Δημοσ. 12 Ιανουαρίου 2009 ...αυτες τις συναρτησεις φιλε "natural_sgf" δε τις ξερω αλλα θα ψαξω να βρω παραδειγμα στο ιντερνετ. σ'ευχαριστω πολυ για τη βοηθεια!
Επισκέπτης Δημοσ. 12 Ιανουαρίου 2009 Δημοσ. 12 Ιανουαρίου 2009 κάνε man strtok(σε κονσόλα) και θα καταλάβεις τι σου λεω...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.