SHPORA.net :: PDA

Login:
ðåãèñòðàöèÿ

Main
FAQ

ãóìàíèòàðíûå íàóêè
åñòåñòâåííûå íàóêè
ìàòåìàòè÷åñêèå íàóêè
òåõíè÷åñêèå íàóêè
Search:
Title: | Body:

a.Apel sis.open

Apelul sistem open este primul pas ce trebuie efectuat de cãtre un proces pentru a putea accesa datele unui fi?ier. Sintaxa apelului sistem open este:
fd = open (nume_cale, flaguri, moduri);
unde nume_cale este un nume de fi?ier, flaguri indicã tipul de deschidere (pentru scriere sau citire), iar moduri specificã permisiunile de acces în cazul creãrii fi?ierului.
Apelul sistem returneazã un întreg numit descriptor de fi?ier (fd). Toate celelalte operaÞii cu fi?ierul, cum ar fi citirea, scrierea, poziÞionarea offsetului fi?ierului, duplicarea descriptorului de fi?ier, modificarea parametrilor de I/O ai fi?ierului, determinarea stãrii fi?ierului ?i închiderea fi?ierului, folosesc descriptorul de fi?ier pe care îl returneazã apelul sistem open.
**algoritm open
^intrări: numele fişierului
^tipul de deschidere
^permisiuni de acces /*precizate doar la creare*/
^ieşire:descriptorul de fişier
{
^determinarea inodului folosind numele fişierului (algoritm namei);
^if (fişierul nu există sau accesul nu este permis)
^return (eroare); /* uzual -1 */
^alocă o intrare în GFT pentru inod, iniŢializează contorul şi offsetul;
^alocă o intrare în UFDT, setează pointerul către intrarea corespunzătoare din GFT;
^if (tipul de deschidere presupune rescrierea fişierului)
^eliberează toate blocurile fişierului (algoritm free);
^deblochează (inodul); /* blocat în namei */
^return (descriptorul de fişier);
}