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