Provided by: manpages-ru-dev_4.27.0-1_all 

НАИМЕНОВАНИЕ
setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r - читает запись о
псевдониме
БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)
ОБЗОР
#include <aliases.h>
void setaliasent(void);
void endaliasent(void);
struct aliasent *getaliasent(void);
int getaliasent_r(struct aliasent *restrict result,
char buffer[restrict .buflen], size_t buflen,
struct aliasent **restrict res);
struct aliasent *getaliasbyname(const char *name);
int getaliasbyname_r(const char *restrict name,
struct aliasent *restrict result,
char buffer[restrict .buflen], size_t buflen,
struct aliasent **restrict res);
ОПИСАНИЕ
Одной из баз данных, доступных в диспетчере службы имён (NSS), является база данных псевдонимов
(aliases), в которой содержатся почтовые псевдонимы (для вывода поддерживаемых баз данных, запустите
getent --help.) Для доступа к базе данных псевдонимов существуют шесть функций.
Функция getaliasent() возвращает указатель на структуру, содержащую информацию о группе из базы данных
псевдонимов. Во время первого вызова функция возвращает первую запись; в дальнейшем она возвращает все
последующие записи.
Функция setaliasent() возвращает файловый указатель в начало базы данных псевдонимов.
Функция endaliasent() закрывает базу данных псевдонимов.
Функция getaliasent_r() является реентерабельной версией предыдущей функции. Запрашиваемая структура
сохраняется через первый аргумент, но программисту также требуется передать и другие аргументы. При
нехватке места функция завершается с ошибкой.
Функция getaliasbyname() берёт имя из аргумента и ищет его в базе данных псевдонимов. Найденный элемент
возвращается в виде указателя на struct aliasent.
Функция getaliasbyname_r() является реентерабельной версией предыдущей функции. Запрашиваемая структура
сохраняется через второй аргумент, но программисту также требуется передать и другие аргументы. При
нехватке места функция завершается с ошибкой.
Структура struct aliasent определена в <aliases.h>:
struct aliasent {
char *alias_name; /* имя псевдонима */
size_t alias_members_len;
char **alias_members; /* список имён псевдонима */
int alias_local;
};
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При ошибке функции getaliasent_r() и getaliasbyname_r() возвращают ненулевое значение.
ФАЙЛЫ
По умолчанию файлом базы данных псевдонимов является /etc/aliases. Это можно изменить в файле
/etc/nsswitch.conf.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
┌───────────────────────────────────────────────────────────────┬──────────────────────┬────────────────┐
│ Интерфейс │ Атрибут │ Значение │
├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
│ setaliasent(), endaliasent(), getaliasent_r(), │ Безвредность в нитях │ MT-Safe locale │
│ getaliasbyname_r() │ │ │
├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
│ getaliasent(), getaliasbyname() │ Безвредность в нитях │ MT-Unsafe │
└───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘
СТАНДАРТЫ
GNU.
ИСТОРИЯ
The NeXT system has similar routines:
#include <aliasdb.h>
void alias_setent(void);
void alias_endent(void);
alias_ent *alias_getent(void);
alias_ent *alias_getbyname(char *name);
ПРИМЕРЫ
Следующий пример компилируется командой gcc example.c -o example. Он выводит все имена из баз данных
псевдонимов.
#include <aliases.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
struct aliasent *al;
setaliasent();
for (;;) {
al = getaliasent();
if (al == NULL)
break;
printf("Name: %s\n", al->alias_name);
}
if (errno) {
perror("reading alias");
exit(EXIT_FAILURE);
}
endaliasent();
exit(EXIT_SUCCESS);
}
СМОТРИТЕ ТАКЖЕ
getgrent(3), getpwent(3), getspent(3), aliases(5)
ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat
Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras
<sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов
<pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной
лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских
переводчиков.
Справочные страницы Linux 6.9.1 15 июня 2024 г. setaliasent(3)