Najwazniejsze struktury danych napotkane przy czytaniu
zrodel funkcji open, creat, close.
task_struct *current; /* obecnie wykonywany proces */
struct task_struct{
unsigned short uid,euid,suid,fsuid;
unsigned short gid,egid,sgid,fsgid; /* identyfikatory procesu */
struct rlimit rlim[RLIM_NLIMITS]; /* tablica rlim jest indeksowana rodzajem zasobu,
np. rlim[RLIMIT_NOFILE] mowi o ograniczeniach na liczbe otwartych plikow */
struct fs_struct *fs;
struct files_struct *files;
...
}
struct rlimit{
long rlim_cur; /* obecna maks. liczba zasobow danego typu*/
long rlim_max;/* maks.dopuszczalna liczba zasobow */
}
/* opisuje ograniczenie na zasoby jednego typu. W przypadku liczby otwartych plikow oba pola (rlim_cur,rlim_max) inicjalizowane sa na NR_OPEN=256*/
struct fs_struct{
unsigned short umask;
...
}
struct files_struct { /*informacja o otwartych plikach */
struct file *fd[NR_OPEN];/* tablica deskryptorow */
...
}
struct file {
loff_t f_pos; /* pozycja od ktorej nastapi czytanie/pisanie do pliku*/
unsigned short f_count ; /* licznik odwolan do tej pozycji w tablicy plikow */
struct file *f_next, *f_prev; /* lista dwukierunkowa */
struct inode * f_inode; /* wskaznik do tablicy i-wezlow */
...
} /* element tablicy(listy) plikow*/
struct inode {
uid_t i_uid;
gid_t i_gid;
...
} /* element tablicy i-wezlow */
Autor: Marcin Rychlik