getservent, getservbyname, getservbyport, setservent, endservent -
возвращают
запись о
службе
Standard C library (
libc,
-lc)
#include <netdb.h>
struct servent *getservent(void);
struct servent *getservbyname(const char *name, const char *proto);
struct servent *getservbyport(int port, const char *proto);
void setservent(int stayopen);
void endservent(void);
Функция
getservent()
считывает
следующую
запись из
файла,
содержащего
базу служб
(смотрите
services(5)), и
возвращает
структуру
servent,
содержащую
поля из
этой
записи. При
необходимости
будет
открыто
подключение
к базе.
Функция
getservbyname()
возвращает
структуру
servent
элемента
из базы
данных,
который
совпадает
со службой
name и
использующей
протокол
proto.
Если
значение
proto
равно NULL, то
подойдёт
любой
протокол.
При
необходимости
будет
открыто
подключение
к базе.
Функция
getservbyport()
возвращает
структуру
servent
элемента
из базы
данных,
который
совпадает
с портом
port
(значение
имеет
сетевой
порядок
байт) и
использующей
протокол
proto.
Если
значение
proto
равно NULL, то
подойдёт
любой
протокол.
При
необходимости
будет
открыто
подключение
к базе.
Функция
setservent()
открывает
соединение
к базе и
устанавливает
следующую
запись к
первой
записи.
Если
stayopen не
равен нулю,
то
подключение
к базе
между
вызовами
нескольких
функций
getserv*()
не будет
закрыто.
Функция
endservent()
закрывает
подключение
к базе.
Структура
servent
определена
в
<netdb.h> таким
образом:
struct servent {
char *s_name; /* официальное имя службы */
char **s_aliases; /* список псевдонимов */
int s_port; /* номер порта */
char *s_proto; /* используемый протокол */
}
Члены
структуры
servent:
- s_name
- Официальное
название
службы.
- s_aliases
- Список
альтернативных
имён
службы,
завершающийся
NULL.
- s_port
- Номер
порта
службы,
задаваемый
в сетевом
порядке
байт.
- s_proto
- Имя
протокола,
используемого
с данной
службой.
The
getservent(),
getservbyname(), and
getservbyport()
functions return a pointer to a statically allocated
servent structure,
or NULL if an error occurs or the end of the file is reached.
- /etc/services
- файл
базы
данных
служб
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
getservent() |
Безвредность
в нитях |
MT-Unsafe race:servent race:serventbuf locale |
getservbyname() |
Безвредность
в нитях |
MT-Unsafe race:servbyname locale |
getservbyport() |
Безвредность
в нитях |
MT-Unsafe race:servbyport locale |
setservent(), endservent() |
Безвредность
в нитях |
MT-Unsafe race:servent locale |
В
приведённой
выше
таблице
servent
в
race:servent
означает,
что если в
нескольких
нитях
программы
одновременно
используются
функции
setservent(),
getservent() или
endservent(),
то может
возникнуть
состязательность
по данным.
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
getnetent(3),
getprotoent(3),
getservent_r(3),
services(5)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Vladislav <
[email protected]>,
Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]