Do tematu: System plików

Do tematu: Struktury danych

file
 
Typ Nazwa Opis
struct file *f_prev, *f_next dowiązania do poprzedniego i następnego elementu na liście 
struct inode *f_inode dowiązanie do struktury opisującej i-węzeł w pamięci
struct file_operations *f_op dowiązanie do struktury zawierającej wskaźniki funkcji implementujących operacje na tym pliku (zależą od rodzaju pliku) 
loff_t f_pos bieżący bajt pliku - od niego rozpocznie się kolejne pisanie, czytanie, itp.
mode_t f_mode prawa nadane procesowi, który otworzył plik (FMODE_READ, FMODE_WRITE)
unsigned short f_flags flagi określające sposób otwarcia pliku (()_CREATE, O_READ, ...)
unsigned short  f_count ilość dowiązań prowadzących do tego elementu na liście z tablic deskryptorów użytkowników
int  f_owner numer procesu, lub grupy procesów, do których powinien zostać wysłany sygnał SIGIO
void *private_data umożliwia zapamiętanie dodatkowej informacji, wykorzystywana przez niektóre moduły (np tty)
unsigned long f_ra.. rawin, ramax, raend, ralen, reada - informacje pamiętane przy realizowaniu czytania bloków z wyprzedzaniem (algorytm breada),  jak rozmiar danych wczytanych w trakcie ostatnio wykonywanego czytania z wyprzedzeniem, czy aktualny maksymalny rozmiar danych, ktore mozna czytać z wyprzedzeniem 
unsigned long f_version licznik zdarzeń ustawiany na zmienną event zwiększaną o jeden przy uaktualnieniu struktury file; analogicznie jak pole i_version w strukturze inode 
stałe wykorzystywane w strukturze
 
Nazwa Opis
FMODE_WRITE proces ma prawo pisania do pliku
FMODE_READ proces ma tylko prawo czytania z pliku
O_CREAT jesli plik nie istnieje bedzie stworzony
O_EXCL uzywany z flaga O_CREAT, jesli plik juz istnieje zwroc blad
O_RDONLY otwieranie pliku tylko do czytania
O_WRONLY otiweranie pliku tylko do pisania
O_RDWR otwieranie pliku do czytania/pisania
O_NOCTTY jesli pathname odnosi sie do terminala, to nie stanie sie on terminalem sterujacym, nawet jesli takowego proces nie posiada
O_APPEND przesuwa wskaznik biezacej pozycji pliku na koniec pliku
O_TRUNC przesuwa wskaznik koncai pliku na biezaca pozycje pliku
O_NONBLOCK / O_NDELAY open oraz kazda inna nastepna operacja na zwroconym deskryptorze bedzie konczyla sie bledem w przypadku koniecznosci czekania na jakies zdarzenie np. zdjecie blokady z pliku 
O_SYNC  dowolne operacje pisania na deskryptorze beda blokowaly proces az do momentu wykonania fizycznego zapisu na urzadzeniu docelowym 
Autor:
Robert Dąbrowski

Skład:
Robert Dąbrowski