Здравствуйте, системные програмисты
Подскажите, вот вызов malloc(size) возвращает указатель на выделенный кусок. При этом free не требует указывать размер.
Так-же open и socket возвращают лишь число
Возникает очевидное подозрение, что есть некие глобальные словари (массивы, списки), в которых ключ - это адрес (для malloc) или число (в случае open), а значение - структура, с настройками этих сущностей.
Почему сделанно именно так? Почему возвращается примитивное значение, а не, как это принято в Си, opaque структура, содержащая состояние?
Имеет ли право на жизнь подобный подход? Существует ли пример несистемных библиотек, которые возвращают число/указатель вместо структуры?