Я думаю, что это в значительной степени по историческим причинам.
Дескриптор Unix файл представляет собой небольшое int
значение, возвращаемое функциями , как open
и creat
, и передается read
, write
, close
и так далее.
По крайней мере, в ранних версиях Unix файловый дескриптор представлял собой просто указатель на массив структур фиксированного размера для каждого процесса, где каждая структура содержит информацию об открытом файле. Если я правильно помню, некоторые ранние системы ограничивали размер этой таблицы до 20 или около того.
Более современные системы имеют более высокие пределы, но сохранили ту же общую схему, в основном из инерции.