Книга: UNIX: взаимодействие процессов
15.5. Функция door_cred
15.5. Функция door_cred
Интерфейс дверей предусматривает полезную возможность получения информации о клиенте при каждом вызове. Это осуществляется функцией door_cred:
#include <door.h>
int door_cred(door_cred_t *cred);
/* Возвращает 0 в случае успешного завершения, –1 – в случае ошибки */
Структура, на которую указывает аргумент cred, имеет тип door_cred_t, определяемый как
typedef struct door_cred {
uid_t dc_euid; /* действующий идентификатор пользователя клиента */
gid_t dc_egid; /* действующий идентификатор группы клиента */
uid_t dc_ruid; /* реальный идентификатор пользователя клиента */
gid_t dc_rgid; /* реальный идентификатор группы клиента */
pid_t dc_pid; /* идентификатор процесса клиента */
} door_cred_t;
В эту структуру помещается информация о клиенте при возвращении из вызова door_cred. В разделе 4.4 [21] подробно рассказывается о различиях между действующими и реальными идентификаторами пользователя и группы, а пример использования этой функции приведен в листинге. 15.5.
Обратите внимание, что эта функция не принимает никаких дескрипторов. Она возвращает информацию о клиенте, осуществившем конкретный вызов через дверь, и поэтому должна вызываться из процедуры сервера или другой функции, вызываемой из процедуры сервера.
- 15.1. Введение
- 15.2. Функция door_call
- 15.3. Функция door_create
- 15.4. Функция door_return
- 15.5. Функция door_cred
- 15.6. Функция door_info
- 15.7. Примеры
- 15.8. Передача дескрипторов
- Пример
- 15.9. Функция door server_create
- 15.10. Функции door_bind, door unbind и door_revoke
- 15.11. Досрочное завершение клиента или сервера
- 15.12. Резюме
- Упражнения
- 15.4. Функция door_return
- Функция door_info
- 15.6. Функция door_info
- Функция door_cred и информация о клиенте
- 2.1.3. Функция getopt_long()
- Группировка по встроенным функциям и UDF
- 19.1.1. Функция jQuery()
- Функция strcmp( )
- Управление функциями узла
- Функция программного обеспечения
- 3.2. Ключи типа key_t и функция ftok
- 9.10. Функция sctp_recvmsg