a.Apel sist dup

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


Apelul sistem dup copiazг un descriptor de fi?ier оn primul slot (intrare) liber din UFDT, returnвnd utilizatorului noul descriptor. Apelul poate fi folosit pentru toate tipurile de fi?iere. Este utilizat оn construcЮia programelor complexe pornind de la programe mai simple (vezi capitolul 7, construirea pipeline-urilor shell ). Sintaxa apelului este:
fd_nou = dup(fd);
unde fd este descriptorul de fi?ier corespunzгtor ce va fi duplicat, iar fd_nou este noul descriptor care va referi fi?ierul. Contorul intrгrii din GFT corespunzгtoare lui fd va fi incrementat, deoarece ?i intrarea din UFDT a lui fd_nou va pointa cгtre aceea?i intrare оn GFT.--Examinвnd, de exemplu, stucturile de date prezentate оn figura 5.20 reies urmгtoarele: un proces a deschis fi?ierul "/etc/passwd" (descriptor 3), apoi fi?ierul "local" (descriptor 4), ?i оncг odatг fi?ierul "/etc/passwd" (descriptor 5). Оn final a fost duplicat descriptorul 5 apelвnd dup care a returnat descriptorul 6.

#include <fcntl.h>
^main()
{
^ int i,j;
^ char buf1[512], buf2[512];
^ i = open("/etc/passwd", O_RDONLY);
^ j = dup(i);
^ read(i, buf1, sizeof(buf1));
^ read(j, buf2, sizeof(buf2));
^close(i);
^read(j, buf2, sizeof(buf2));
}