Обычно с getservbyport()
API, который является интерфейсом к структуре Name Service .
Это то же самое семейство функций, которые преобразуют IP-адреса в имена хостов, имена пользователей в идентификаторы пользователей и так далее.
getservbyport()
обычно обращается к /etc/nsswitch.conf
(, в котором указано, какую базу данных использовать для каждой из категорий )для записи для services
.
Если запись для services
показывает files
, то будет использоваться файл /etc/services
в виде плоского текстового файла, подобно /etc/passwd
, если бы files
упоминалось дляpasswd
(пользовательской базы данных. ).
У вас могут быть другие формы баз данных. В системах GNU, если в списке естьxyz
база данных, она будет запрашиваться с использованием libnss_xyz.so
разделяемой библиотеки, загружаемой по требованию.
Кроме files
, распространенными являются db
, nis
, nisplus
, ldap
...
В простых развертываниях обычно только files
, поэтому /etc/services
.