Deskryptor pliku
Deskryptor pliku to identyfikator pliku używany przez system operacyjny, który umożliwia wielokrotne wykorzystanie w operacjach wejścia/wyjścia po otwarciu pliku. Jest on zwracany przez funkcje systemowe z rodziny open, w przeciwieństwie do funkcji fopen, które zwracają uchwyt pliku – strukturę danych z dodatkowymi informacjami o pliku.
Termin deskryptor pliku jest powszechnie stosowany w systemach zgodnych z normą POSIX, natomiast w systemach Microsoft Windows używa się określenia „uchwyt pliku” (ang. file handle).
Rodzaje deskryptorów
W standardzie POSIX deskryptor pliku jest reprezentowany jako liczba całkowita typu int
. Po uruchomieniu każdy proces ma domyślnie otwarte trzy standardowe deskryptory plików:
- stdin (standardowe wejście)
- stdout (standardowe wyjście)
- stderr (standardowe wyjście błędów)
Deskryptor pliku działa jako indeks w tablicy deskryptorów plików, która jest odrębna dla każdego procesu. Aplikacja użytkownika, wykonując operacje plikowe, przekazuje do jądra odpowiedni indeks, a jądro realizuje operacje związane z plikiem w imieniu aplikacji. Aplikacja nie ma bezpośredniego dostępu do tablicy deskryptorów plików; zmiany są dokonywane przez system operacyjny w zależności od realizowanej operacji.
Zastosowanie deskryptora pliku
W systemach Unix deskryptor pliku może odnosić się do różnych typów zasobów, takich jak:
- plik
- katalog
- urządzenie blokowe
- urządzenie znakowe
- gniazdo
- kolejka FIFO
- nienazwany strumień
- dowiązanie symboliczne
Deskryptory plików są kluczowym elementem w zarządzaniu operacjami plikowymi w systemach operacyjnych, umożliwiając efektywne i zorganizowane zarządzanie różnorodnymi zasobami.