Διαδιεργασιακή επικοινωνία με σωληνώσεις
Η κλήση pipe() λαμβάνει ως παράμετρο έναν πίνακα fd δύο ακεραίων και θέτει
τις τιμές τους σε περιγραφείς δύο άκρων μιας σωλήνωσης.
Ο περιγραφέας fd[0] προσδιορίζει το άκρο της σωλήνωσης από το οποίο
μπορούμε να διαβάσουμε ενώ ο περιγραφέας fd[1] προσδιορίζει το άκρο
της σωλήνωσης στο οποίο γράφουμε.
Τα στοιχεία που γράφονται στο ένα άκρο της σωλήνωσης μπορούν να διαβαστούν
από το άλλο.
Επειδή οι περιγραφείς κληρονομούνται ανάμεσα σε διεργασίες η σωλήνωση
μπορεί να χρησιμοποιηθεί για διαδιεργασιακή επικοινωνία.
Ένα απλό παράδειγμα χρήσης της pipe() είναι το παρακάτω:
int fd[2], n;
char buff[100];
pipe(fd);
write(fd[1], "hello", 5);
n = read(fd[0], buff, 100);
write(1, buff, n);
Παράδειγμα
Με τη χρήση της pipe() στείλτε ένα μήνυμα από μια διεργασία σε άλλη την
οποία δημιουργήσατε με τη fork().