Διαδιεργασιακή επικοινωνία με σωληνώσεις

Η κλήση 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().