Blog literacki, portal erotyczny - seks i humor nie z tej ziemi


Do spisu tresci tematu 6
3.2.3 Funkcja systemowa stat()

Spis tresci


Wprowadzenie
Struktury danych
Algorytm funkcji.
Bibliografia.


Wprowadzenie
Funkcja stat()
sluzy do pobierania statusu pliku przechowywanego w jego
i-wezle.Przekazuje takie informacje jak typ pliku,wlasciciel
pliku,prawa dostepu,rozmiar pliku,liczba dowiazan,numer i-wezla i czas
dostepu do pliku.Dzialanie tej funkcji sprowadza sie jedynie do
przepisania zawartosci i-wezla do bufora.

Spis tresci.

Struktury danych
Struktura
old_stat

Oto dokladna definicja podstawowej struktury wykorzystywanej przez opisywana
funkcje.Sluzy do przechowywania informacji o pliku zaczerpnietych z i-wezla.
Jest zdefiniowana w pliku include/linux/stat.h.

struct old_stat {
unsigned short st_dev; /*numer urzadzenia zawierajacy dany i-wezel*/
unsigned short st_ino; /*numer i-wezla*/
unsigned short st_mode; /*16-bitowy tryb pliku*/
unsigned short st_nlink;/*licznik dowiazan*/
unsigned short st_uid; /*identyfikator wlasciciela pliku*/
unsigned short st_gid; /*identyfikator grupy*/
unsigned short st_rdev; /*numer urzadzenia zwiazany z plikiem specjalnym*/
unsigned long st_size; /*aktualn wielkosc pliku*/
unsigned long st_atime;/*czas dostepu do pliku*/
unsigned long st_mtime;/*czas modyfikacji pliku*/
unsigned long st_ctime;/*czas zmiany stanu pliku*/
}


Spis tresci.


Algorytm funkcji

DEFINICJA: int stat(char *filename,struct old_stat *statbuf)
WYNIK: 0 w przypadku sukcesu oraz zmiennej stat_buf zapisuje status pliku
-1 w przypadku bledu oraz na zmiennej errno:
EFAULT (bledny adres)
ENAMETOOLONG (nazwa sciezkowa za dluga)
ENOTDIR (nie jest katalogiem)
EISDIR (jest katalogiem)


Pierwszym argumentem funkcji jest sciezka dostepu do pliku.Drugi
argument to bufor na,ktorym znajda sie dane o pliku w przypadku
poprawnego wykonania sie funkcji.

Implementacja funkcji:
{
sprawdz mozliwosc zaalokowania pamieci na bufor *statbuf;

zamien nazwe sciezkowa *filename na odpowiedni i-wezel;

skopiuj zawrtosc i-wezla do bufora (odpowiedzialna za to jest funkcja cp_old_stat);

zwroc i-wezel;
}



Spis tresci.


Bibliografia


Pliki zrodlowe Linuxa:

include/linux/stat.h (definicje struktor),
fs/stat.c (implementacja).

Maurice J. Bach: Budowa systemu operacyjnego UNIX - rozdial 5.11
Marc J. Rochkind : Programowanie w systemie UNIX dla zaawansowanych


Spis tresci.



Autor: Piotr Dada
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • qualintaka.pev.pl
  •