Получите эффективные учетные данные пира UNIX-домена
#include <sys/types.h>#include <unistd.h>int getpeereid( int s,uid_t *euid,gid_t *egid );
SOCK_STREAM
для которого вы либо вызвали функцию connect(), либо одну из возвращенных из accept() после вызова bind() и listen().NULL
, или указатель на область памяти, где функция может хранить эффективный идентификатор пользователя.NULL
, или указатель на область памяти, где функция может хранить эффективный идентификатор группы.libc
Функция getpeereid() получает эффективные идентификаторы группы и пользователя пира, присоединенного к сокету домена UNIX. Если euid и egid не равны NULL
, функция хранит идентификаторы в областях памяти, на которые они указывают.
При получении сокета в результате вызова connect(), учетные данные принадлежат пиру на момент вызова bind(). Если сокет был возвращен функцией accept(), учетные данные принадлежат пиру на момент вызова connect(). Этот механизм надежен; ни одна из сторон не может повлиять на учетные данные, возвращаемые своему пиру, кроме как путем вызова соответствующего системного вызова (т.е., либо connect() либо bind()) под разными действующими полномочиями.
Серверы и клиенты домена UNIX обычно используют эту функцию для проверки учетных данных друг друга.
SOCK_STREAM
, или система вернула недопустимые данные. NetBSD
accept(), bind(), connect(), listen(), UNIX
Предыдущий раздел: Описание API системной библиотеки