Next: Montowanie głównego systemu plików
Up: OBSŁUGA PLIKÓW SPECJALNYCH
Previous: Pobieranie i-węzła z dysku
  Spis rzeczy
fs/namei.c
long sys_mknod(const char * filename, int mode, dev_t dev)
Funkcja sys_mknod() stanowi realizację funkcji systemowej
mknod(), a więc przyjmuje takie same parametry:
- filename - nazwa pliku,
- mode - typ, ten parametr wskazuje jakiego typu ma być to plik,
ale także prawa dostępu z jakimi ma być utworzony
- dev - numer urządzenia; tak jak dla funkcji systemowej
mknod() jest to numer składający się zarówno z numeru głównego
jak też podrzędnego urządzenia.
Aby utworzyć plik urządzenia znakowego parametr mode powinien
mieć ustawiony bit S_IFCHR, podobnie przy tworzeniu pliku blokowego trzeba
ustawić bit S_IFBLK. Przy tworzeniu plików specjalnych funkcja ta posiłkuje
się funkcją vfs_mknod(), a ta z kolei wywołuje operację mknod,
której adres uzyskuje z obiektu i-węzła związanego z katalogiem, w którym
chcemy utworzyć dany plik. Widać więc, że to w jaki sposób plik zostanie
utworzony, zależy od zbioru operacji związanych z obiektem i-węzła katalogu,
a co za tym idzie od systemu plików w jakim się ten katalog znajduje.
To tłumaczy dlaczego nie powiodło się utworzenie pliku urządzenia
w systemie plików vfat w jednym z powyższych przykładów.
Next: Montowanie głównego systemu plików
Up: OBSŁUGA PLIKÓW SPECJALNYCH
Previous: Pobieranie i-węzła z dysku
  Spis rzeczy
Marcin Czępiński
2001-12-19