c.Inchiderea pipe
De?i оn cazul pipe-urilor numite care au doar un cititor/redactor blocat existг posibilitatea de a apare noi procese redactor sau cititor, nucleul le trateazг оn aceea?i manierг ca pe cele obi?nuite. Cвnd nici un proces cititor sau redactor nu mai acceseazг pipe-ul, nucleul elibereazг toate blocurile sale de date ?i actualizeazг inodul pentru a indica cг pipe-ul este gol. Cвnd elibereazг inodul unui pipe obi?nuit, el elibereazг ?i copia disc pentru a fi reasignatг.
--Exemplu
char string[ ]= "hello";
^main()
{
^ char buf[1024];
^ char *cp1, *cp2;
^ int fds[2];
^ cp1= string;
^ cp2= buf;
^ while (*cp1)
^ *cp2++= *cp1++;
^ pipe(fds);
^ for(;;)
{
^write(fds[1], buf, 6);
^read(fds[0], buf, 6);
^ }
^}