Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Apelul sistem dup - UNIX

linux



+ Font mai mare | - Font mai mic



Apelul sistem dup - UNIX

Apelul sistem dup copiaza un descriptor de fisier in primul slot (intrare) liber din tabela descriptorilor de fisier utilizator, returnand utilizatorului noul descriptor. Apelul poate fi folosit pentru toate tipurile de fisiere. Este utilizat in constructia programelor complexe pornind de la programe mai simple (vezi capitolul 7, construirea pipeline-urilor shell ). Sintaxa apelului este:



fdInou = dup(fd);

unde fd este descriptorul de fisier care va fi duplicat, iar fdInou este noul descriptor care va referi fisierul. Contorul intrarii din tabela de fisiere corespunzatoare lui fd va fi incrementat, deoarece si intrarea din tabela descriptorilor de fisier utilizator a lui fdInou va pointa catre aceeasi intrare in tabela de fisiere.

Examinand, de exemplu, structurile de date prezentate in figura 5.20 reies urmatoarele: un proces a deschis fisierul '/etc/passwd' (descriptor 3), apoi fisierul 'local' (descriptor 4), si inca odata fisierul '/etc/passwd' (descriptor 5). In final a fost duplicat descriptorul 3 apeland dup care a returnat descriptorul 6.

5.20 Structurile de date dupa apelul sistem dup

#include <fcntl.h>

main()

Figura 5.21 Program C in care este folosit apelul dup

In programul din figura 5.21 variabila i contine descriptorul de fisier returnat la deschiderea fisierului '/etc/passwd', iar variabila j pe cel obtinut prin duplicarea lui i. Ambii descriptori pointeaza catre aceeasi intrare din tabela de fisiere, utilizand deci acelasi deplasament. Astfel, dupa primele doua citiri, buf1 si buf2 vor contine informatii diferite. Procesul poate inchide unul dintre descriptori dar operatiile de I/O pot continua fara probleme prin intermediul celuilalt descriptor.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 815
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved