-
Notifications
You must be signed in to change notification settings - Fork 19
Sisteme de Operare (pe scurt)
aliasbind edited this page May 18, 2011
·
15 revisions
int open(const char *pathname, int flags);
- Deschide fișierul aflat la calea
pathname
cu opțiunile date înflags
. -
Returnează un descriptor la fișierul respectiv sau
-1
în caz de eroare. - Câteva flag-uri importante:
-
O_RDONLY
,O_WRONLY
,O_RDWR
- deschide fișierul în modul Read-Only, Write-Only, respectiv Read-Write. -
O_APPEND
- deschide fișierul în apendare, adică înainte de fiecarewrite()
cursorul de scriere se va muta la sfârșitul fișierului. -
O_EXCL
- în cazul în care fișierul nu există,open()
va returna-1
(eroare) -
O_CREAT
- creează fișierul în cazul în care acesta nu există. De menționat că dacă se folosește acest flag, trebuie menționate și drepturile pe care le va avea fișierul, deci trebuie folosit apelul de mai jos cu 3 parametrii.
-
int open(const char *pathname, int flags, mode_t mode);
- La fel ca mai sus, numai că mai ai un parametru suplimentar pentru specificat drepturile fișierului în cazul în care acesta este creat. (ai folosit
O_CREAT
în lista deflags
).
ssize_t read(int fd, void *buf, size_t count);
- Citește din fișierul având descriptorul
fd
un număr decount
bytes și îi pune în locul din memorie rezervat la adresabuf
. (ssize_t
e echivalent cuint
) -
Returnează numărul de bytes citiți sau
-1
în caz de eroare.
ssize_t write(int fd, const void *buf, size_t count);
- Scrie în fișierul având descriptorul
fd
un număr decount
bytes care încep la adresa specificată debuf
. -
Returnează numărul de bytes scriși sau
-1
în caz de eroare.
int close(int fd);
- Închide fișierul având descriptorul
fd
. -
Returnează
0
dacă apelul se termină cu succes,-1
altfel. (NOTĂ: Nu e cazul să verifici dacă apelul a eșuat sau nu).
DIR *opendir(const char *name);
- Deschide directorul dat la calea
name
. -
Returnează un fel de structură ajutătoare ce va fi folosită ulterior la alte funcții cu directoare. (spre exemplu în
readdir()
mai jos). În caz de eroare, returneazăNULL
.
struct dirent *readdir(DIR *dirp);
- Citește conținutul directorului deschis mai înainte.
- Structura
dirent
este definită astfel:
struct dirent
{
ino_t d_ino; // Numărul i-nodului.
char d_name[256]; // Numele fișierului.
... // Alte date neimportante.
};
-
Returnează o structură ce conține date despre un fișier din acest director. La următoare apelare a lui
readdir()
se va obține o altă structură a altui fișier din director, și tot așa până cand nu mai sunt fișiere, caz în care se returneazăNULL
.
int closedir(DIR *dirp);
- Închide directorul reprezentat de
dirp
. -
Returnează
0
dacă apelul s-a executat cu succes,-1
altfel.