SETALIASENT(3) Manuel du programmeur Linux SETALIASENT(3)

setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r - Lire une entrée alias

#include <aliases.h>
void setaliasent(void);
void endaliasent(void);
struct aliasent *getaliasent(void);
int getaliasent_r(struct aliasent *restrict result,
                     char *restrict buffer, 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 *restrict buffer, size_t buflen,
                     struct aliasent **restrict res);

Une des bases de données disponibles avec le « Name Service Switch » (NSS) est la base de données des alias qui contient les alias de mail (pour savoir quelles bases de données sont supportées, taper la commande « getent --help »). Six fonctions sont fournies pour accéder à la base de données des alias.

La fonction getaliasent() renvoie un pointeur sur une structure contenant l'information de groupe dans la base de données des alias. Le premier appel de cette fonction permet de retourner la première entrée ; les appels suivants retourneront les entrées successives.

La fonction setaliasent() positionne le pointeur de fichier au début de la base de données des alias.

La fonction endaliasent() ferme la base de données des alias.

getaliasent_r() est la version réentrante de la fonction getaliasent(). La structure recherchée est enregistrée via le premier argument mais le programmeur doit également renseigner les autres arguments. Ne pas fournir suffisamment d'espace provoquera l'échec de la fonction.

La fonction getaliasbyname() prend en argument « name » et cherche dans la base de données des alias. L'entrée est retournée sous forme de pointeur vers une structure aliasent.

La fonction getaliasbyname_r() est la version réentrante de la fonction précédente. La structure recherchée est enregistrée via le deuxième argument mais le programmeur doit également renseigner les autres arguments. Ne pas fournir suffisamment d'espace provoquera l'échec de la fonction.

La structure aliasent est définie dans <aliases.h> :


struct aliasent {

char *alias_name; /* nom de alias */
size_t alias_members_len;
char **alias_members; /* liste de noms d'alias */
int alias_local; };

Les fonctions getaliasent_r() et getaliasbyname_r() renvoient une valeur non nulle en cas d'erreur.

La base de données des alias par défaut est le fichier /etc/aliases. Elle peut être modifiée dans le fichier /etc/nsswitch.conf.

Pour une explication des termes utilisés dans cette section, consulter attributes(7).

Interface Attribut Valeur
setaliasent(), endaliasent(), getaliasent_r(), getaliasbyname_r() Sécurité des threads MT-Safe locale
getaliasent(), getaliasbyname() Sécurité des threads MT-Unsafe

Ces routines sont spécifiques à la glibc. Le système NeXT a des routines similaires :


#include <aliasdb.h>
void alias_setent(void);
void alias_endent(void);
alias_ent *alias_getent(void);
alias_ent *alias_getbyname(char *name);

L'exemple suivant se compile avec la commande gcc example.c -o example. Il affichera tous les noms trouvés dans la base de données des alias.

#include <aliases.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.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)

Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

22 mars 2021 GNU