Descriptorul de fișier este un număr întreg nenegativ. Când este creat un nou flux I/O, nucleul revine la procesul care a creat fluxul I/O descriptorul său de fișier.
Toate fluxurile I/O (care pot fi asociate cu fișiere, precum și directoare, socket -uri și FIFO ) pot fi accesate prin așa-numiții descriptori de fișiere.
În mod implicit , shell-urile Unix asociază descriptorul de fișier 0 cu intrarea standard a procesului (tastatură), descriptorul de fișier 1 cu ieșirea standard a procesului (terminal) și descriptorul de fișier 2 cu fluxul de diagnosticare (unde sunt de obicei scrise mesajele de eroare). Această convenție este respectată de multe shell-uri Unix și de multe aplicații – și nu face în niciun caz parte din nucleu.
Standardul POSIX.1 a înlocuit „numerele magice” 0, 1, 2 cu constantele simbolice STDIN_FILENO, STDOUT_FILENO și, respectiv, STDERR_FILENO.
Descriptorii fișierelor pot lua valori de la 0 la OPEN_MAX. Conform POSIX.1, valoarea lui OPEN_MAX este 19. În sistemele de operare reale, această valoare poate fi mai mare.
Pe sistemul de operare Windows , pentru a obține un handle de fișier, acesta trebuie deschis cu funcția CreateFile. Descriptorul rezultat (sau mânerul) poate fi apoi folosit pentru a lucra cu acel fișier. Dacă este un driver, atunci mânerul va fi folosit în funcția DeviceIoControl.