Deskryptor pliku

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Deskryptor pliku – identyfikator pliku wykorzystywany przez system operacyjny. Po wykonaniu operacji otwarcia pliku, deskryptor pliku może być wykorzystywany wielokrotnie przez wywołanie systemowe w operacjach wejścia/wyjścia. Deskryptor pliku jest zwracany przez funkcje systemowe z rodziny open, w odróżnieniu od funkcji fopen, które zwracają uchwyt pliku. Uchwyt pliku jest strukturą danych zawierającą dodatkowe informacje na temat otwartego pliku.

Określenie deskryptor pliku jest używane głównie w systemach operacyjnych zgodnych z normą POSIX. W terminologii Microsoft Windows używane jest określenie "uchwyt pliku" (ang. file handle).

Zgodnie z POSIX deskryptor pliku to liczba całkowita, czyli wartość typu int z języka C. Domyślnie każdy proces po uruchomieniu ma otwarte 3 standardowe deskryptory plików:

Wartość deskryptora Nazwa Nazwa uchwytu
0 Standardowe wejście (stdin) STDIN
1 Standardowe wyjście (stdout) STDOUT
2 Standardowe wyjście diagnostyczne (stderr) STDERR

Ogólnie, deskryptor pliku to Indeks do przechowywanej przez jądro struktury danych zawierającej informacje o wszystkich otwartych plikach. W standardzie POSIX ta struktura danych jest nazwana tablicą deskryptorów plików i jest odrębna dla każdego procesu. Aplikacja użytkownika wykonując operacje plikowe przekazuje do jądra indeks, a jądro zajmuje się w imieniu aplikacji operacjami związanymi z obsługą pliku. Aplikacja nie może bezpośrednio czytać z i pisać do tablicy deskryptorów plików, zmiany w niej są dokonywane przez system w zależności od wykonywanej operacji na pliku.

W systemach Unix deskryptor pliku może odnosić się do pliku, katalogu, urządzenia blokowego lub urządzenia znakowego, gniazda, kolejki FIFO, nienazwanego strumienia lub dowiązania symbolicznego.

Zobacz też[edytuj | edytuj kod]