profitis Δημοσ. 13 Ιουλίου 2010 Δημοσ. 13 Ιουλίου 2010 Καλησπέρα σε όλους. Κάνουμε ένα project σε flex και σε bison. Η είσοδος δίνεται στο flex ως εξής ./myProg < example.fpp ώστε να κάνουμε λεκτικη ανάλυση. Πως μπορώ αυτό το όνομα, το example.fpp να το πιάσω και να το αποθηκευσω σαν πίνακα; Ελεγξα το argv, δεν το κρατάει αφού απλά γίνεται ένα redirect. αντι να παίρνει το πρόγραμμα είσοδο απο το stdin του λέμε να παιρνει είσοδο απο το example.fpp. Μέσα στο πρόγραμμα γίνεται open το αρχείο και το FILE* για το εν λόγω αρχείο είναι διαθέσιμο. Μπορώ μέσα απο αυτό να βρω το όνομα του αρχείου; Ευχαριστω εκ των προτέρων!
Επισκέπτης Δημοσ. 13 Ιουλίου 2010 Δημοσ. 13 Ιουλίου 2010 Πως μπορώ αυτό το όνομα, το example.fpp να το πιάσω και να το αποθηκευσω σαν πίνακα; δεν καταλαβαίνω τι θες να πετύχεις με το παραπάνω...και το κυριότερο, γιατί; μπορείς με την >[url="http://www.opengroup.org/onlinepubs/009695399/functions/fileno.html"]int fileno(FILE *stream);[/url] να μετατρέψεις τον file pointer σε file descriptor και από κει και πέρα αυτό που λέει αυτό εδώ...
C6WGMN Δημοσ. 13 Ιουλίου 2010 Δημοσ. 13 Ιουλίου 2010 Γενικά δεν γνωρίζεις τι πληροφορίες περιέχει το FILE struct. Ούτε αυτό που πρότινε ο φίλος βοηθάει διότι πρώτων το file descriptor του stdin είναι 0 και δεύτερων δεν είναι αρχείο στον δίσκο. Ο τρόπος είναι: αφού έχεις εξετάσει τους όρους του προγράμματος, αν δεν έχει δοθεί όνομα αρχείου, διαβάζεις από stdin. Δεν μπορείς να γνωρίζεις από ποιό αρχείο προέρχονται τα περιεχόμενα. Απλούστερα, πέρασε το όνομα του αρχείου σαν παράμετρο, δηλαδή ./myprog myfile.fpp αν θες το πρόγραμμα να γνωρίζει το αρχείο.
bxenos Δημοσ. 14 Ιουλίου 2010 Δημοσ. 14 Ιουλίου 2010 πιστεύω θα υπάρχουν λύσεις, ακόμα και τα αρχεία κονσόλας (συσκευές) έχουν device id. πχ. ένα γρήγορο search για obtain filename from handle, έδωσε μια απάντηση για windows πάνω-πάνω... Ψάξε φυσικά και το standard stat.h...
Επισκέπτης Δημοσ. 14 Ιουλίου 2010 Δημοσ. 14 Ιουλίου 2010 μη μπερδεύεις όμως τις ευκολίες που σου προσφέρει το Win32 (custom-ιες της microsoft) με το POSIX.1
profitis Δημοσ. 14 Ιουλίου 2010 Μέλος Δημοσ. 14 Ιουλίου 2010 Ευχαριστώ για τις απάντησεις! Αυτό είχαμε σκεφτεί και εμείς αλλά η άσκηση που θέλει να παραδοθεί έχει σαν προδιαγραφές ότι η είσοδος πρέπει να διλεται έτσι, με redirect! Οπότε καλύτερα αυτό να μην το αλλάξουμε γιατί η εξέταση θα γίνεται ακριβώς με το συγκεκριμένο τρόπο-εντολή! ./myProg < example.fpp Επειδή και τα άλλα θέλουν κόπο κα Sent from my iPhone using Insomnia.app δεν καταφέραμε να βρούμε τίποτα ιδιαίτερο μάλλον θα το αφήσουμε. Με argv νομίζω είναι το πιο απλό, αλλά πρέπει η είσοδος να είναι με redirect, το αφήνουμε!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.