fstat()
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.
old_stat
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*/ }
DEFINICJA:Pierwszym argumentem funkcji jest deskryptor pliku.Drugi argument to bufor na,ktorym znajda sie dane o pliku w przypadku poprawnego wykonania sie funkcji.int stat(int fd,struct old_stat *statbuf)
WYNIK: 0 w przypadku sukcesu oraz na zmiennejstat_buf
zapisuje status pliku -1 w przypadku bledu oraz na zmiennej errno: EFAULT (bledny adres) EBADF (bledny numer pliku)
Implementacja funkcji:
{
sprawdz mozliwosc zaalokowania pamieci na bufor ;
sprawdz legalnosc deskryptora;
skopiuj zawrtosc i-wezla do bufora (odpowiedzialna za to jest funkcja cp_old_stat
);
zwroc i-wezel;
}
include/linux/stat.h
(definicje struktor),
fs/stat.c
(implementacja).