шпаргалка

c.Inchiderea pipe

[ Назад ]
La оnchiderea unui pipe, un proces urmeazг accea?i procedurг ca ?i la оnchiderea unui fi?ier regulat, exceptвnd faptul cг nucleul executг unele prelucrгri speciale оnainte de a elibera inodul pipe-ului. Astfel, el decrementeazг contorul corespunzгtor numгrului de procese ce scriu ?i respectiv, citesc din pipe. Dacг numгrul proceselor redactor (ce scriu оn pipe) este 0 ?i sunt procese cititor (ce citesc date din pipe) blocate, nucleul le treze?te, iar ele vor оncheia operaЮia de citire fгrг a citi date. Dacг numгrul proceselor cititor este 0 ?i sunt procese redactor blocate, nucleul le treze?te ?i le trimite un semnal ce indicг o condiЮie de eroare.
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);
^ }
^}

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |