criCri Δημοσ. 5 Απριλίου 2014 Δημοσ. 5 Απριλίου 2014 Καλησπερα σε ολους... Εχω μια απορια..Ποτε στην C χρησιμοποιουμε ως μεσο αποθηκευσης αρχεια, ποτε τους αγωγους και γιατι??Μπορειτε να δωσετε ενα παραδειγμα?
Star_Light Δημοσ. 5 Απριλίου 2014 Δημοσ. 5 Απριλίου 2014 Καλησπερα σε ολους... Εχω μια απορια..Ποτε στην C χρησιμοποιουμε ως μεσο αποθηκευσης αρχεια, ποτε τους αγωγους και γιατι??Μπορειτε να δωσετε ενα παραδειγμα? Εννοεις τα pipes που φτιάχνουμε με την pipe() ? http://stackoverflow.com/questions/6977561/pipe-vs-temporary-file
criCri Δημοσ. 7 Απριλίου 2014 Μέλος Δημοσ. 7 Απριλίου 2014 Νε...τα pipes εννοω.Ξερω πως λειτουργουν αλλα (εμπειρικα) ΠΟΤΕ χρησιμοποιουμε αυτα κ ποτε τα αρχεια(ειχα εργασια οπου επρεπε να υλοποιησω 1 φορα μεσω pipes και την αλλη μεσα απο αρχεια)
Timonkaipumpa Δημοσ. 7 Απριλίου 2014 Δημοσ. 7 Απριλίου 2014 Είναι διαφορετικές "τεχνολογίες". Σκέψου τα pipes ως αυτό που λέγονται. Δηλαδή, σωλήνες. Τους συνδέεις μεταξύ δύο διαφορετικών διεργασιών, δηλαδή φαντάσου τις διεργασίες/προγράμματα ως τον νεροχύτη σου και την αποχέτευση. Αυτά τα δύο πρέπει να συνδέσεις με ένα σωλήνα. Έτσι, όπως ακριβώς ο νεροχύτης δίνει ροή νερού προς την αποχέτευση μέσα από τον σωλήνα, έτσι θα δίνει η μια διεργασία δεδομένα στην άλλη. Μία συνήθης χρήση είναι για το πέρασμα real-time δεδομένων από μία διεργασία σε μία άλλη, π.χ. audio streamer σε δίκτυο. Δηλαδή, μία εφαρμογή που τρέχει και περιμένει να λάβει δεδομένα πρέπει με κάποιο τρόπο να τα περνάει real-time στην κάρτα ήχου και η κάρτα ήχου να τα διαβάζει real-time για να μην χαθεί τίποτα από "γέμισμα" του σωλήνα.
imitheos Δημοσ. 7 Απριλίου 2014 Δημοσ. 7 Απριλίου 2014 Χωρίς να είναι set in stone, αρχεία χρησιμοποιείς όταν θέλεις να αποθηκεύσεις κάτι (έστω και αν αυτό είναι για λίγο). Ίσως αυτό το αρχείο να το διαβάσει μετά μια εφαρμογή ίσως όχι. Όπως είπε ο Timon, pipes χρησιμοποιείς για να περάσεις κάτι από μία process σε μια άλλη σε πραγματικό χρόνο. Την ίδια στιγμή που γράφει η process A στο pipe την ίδια ώρα το βλέπει η process B. Αν έχεις δουλέψει κάποιο κέλυφος σε *nix, τότε σίγουρα έχεις χρησιμοποιήσει pipes για να τροφοδοτήσεις την έξοδο μιας εντολής σε μια άλλη. πχ: % ls /usr/bin | less % grep -r τάδε /usr/share | less % find τάδε | xargs rm Το ίδιο πράγμα θα μπορούσαμε φυσικά να επιτύχουμε και με τη χρήση αρχείων ως εξής: % ls /usr/bin > /tmp/προσωρινό-αρχείο % less /tmp/προσωρινό-αρχείο % rm /tmp/προσωρινό-αρχείο Με αυτό τον τρόπο όμως δεν κερδίζουμε τίποτα γιατί η δουλειά μας απαιτεί περισσότερο κόπο και χρόνο. Με το pipe κερδίζουμε ότι βρίσκεται στη μνήμη (μπορεί να έχουμε αργό αποθηκευτικό χώρο ή μέσο το οποίο έχει περιορισμένο αριθμό εγγραφών δεδομένων οπότε δεν το φθείρουμε άδικα) και επίσης η διαδικασία γίνεται σε πραγματικό χρόνο πράγμα το οποίο να είναι απαραίτητο όπως στο σενάριο που είπε ο Timon και φαίνεται πιο καλά γιατί θέλουμε pipes. 2
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα