шпаргалка

a.Shell-ul

[ Назад ]
Figura de mai jos aratг ciclul principal al shell-lui ?i demonstreazг execuюia asincronг, redirectarea ie?irii ?i conductele de tip pipe.
/* cite?te linia de comandг pвnг la "sfвr?itul fi?ierului" */
--^while (read(tdin, buffer, numchars))
{
/* analizeazг linia de comandг */
^if(/* linia de comandг conюine [and] */
^amper=1;
^else
^amper=0;
/* pentru comenzi ce nu aparюin limbajului de comandг shell */
^if(fork()==0)
{
/* redirectare a I/O */
^if(/* redorectare ie/ire */
{
^fd=creat(newfile, fmask);
^close (stdout);
^dup(fd);
^close(fd);
^/* stdout este acum redirectat */
}
^if(/* cerere de redirectare cгtre o conductг */
{
^pipe(fildes);
^if(fork()==0)
{
/* prima componentг a liniei de comandг */
^close(stdout);
^dup(fildes[1]);
^close(fildes[1]);
^close(fildes[0]);
/* stdout este redirectat acum cгtre o conductг */ , /* procesul fiu executг comanda */
^execlp(command1, command2, 0);
}
/* a doua componentг a liniei de comandг */]
^close(stdin);
^close(fildes[0]);
^close(fildes[1]);
/* intrarea standard este acum o conductг */
}
^execv(command2, command2, 0);
}
/* pгrintele continuг de aici...
* a?teapг terminarea fiului dacг este nevoie*/
^if(amper==0)
^redit=wait([and]status);
Shell-ul cite?te o linie de la intrarea sa standard ?i o interpreteazг dupг un set fixat de reguli. Descriptorii de intrare ?i ie?ire standard ai fi?ierelor pentru shell-ul login sunt uzual terminalul pe care utilizatorul оi folose?te a?a cum se va vedea оn capitolul 10. Dacг shell-ul recunoa?te ?irul de intrare ca o comandг internг (de exemplu, comenzile cd, for, while ?i altele), se executг comanda intern dar fгrг a mai crea procese; altfel, presupune comanda ca fiind numele unui fi?ier executabil.

КАТЕГОРИИ:

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