setaliasent(3) Library Functions Manual setaliasent(3)

setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r - citesc o intrare alias

Biblioteca C standard (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);

Una dintre bazele de date disponibile cu Name Service Switch (NSS) este baza de date de alias, care conține nume de alias de poștă electronică; (pentru a afla ce baze de date sunt acceptate, încercați getent --help). Pentru a accesa baza de date de alias sunt furnizate șase funcții.

Funcția getaliasent() returnează un indicator către o structură care conține informațiile de grup din baza de date de alias Prima dată când este apelată, returnează prima intrare; ulterior, returnează intrări succesive.

Funcția setaliasent() derulează indicatorul de fișier la începutul bazei de date de alias.

Funcția endaliasent() închide baza de date de alias.

getaliasent_r() este versiunea reentrantă a funcției anterioare. Structura solicitată este stocată prin intermediul primului argument, dar programatorul trebuie să completeze și celelalte argumente. Dacă nu se oferă suficient spațiu, funcția eșuează.

Funcția getaliasbyname() primește argumentul nume și caută în baza de date cu pseudonime. Intrarea este returnată sub forma unui indicator către o structură struc aliasent.

getaliasbyname_r() este versiunea reentrantă a funcției anterioare. Structura solicitată este stocată prin intermediul primului argument, dar programatorul trebuie să completeze și celelalte argumente. Dacă nu se oferă suficient spațiu, funcția eșuează.

struct aliasent este definită în <aliases.h>:


struct aliasent {
    char    *alias_name;             /* nume alias */
    size_t   alias_members_len;
    char   **alias_members;          /* listă nume alias */
    int      alias_local;
};

Funcțiile getaliasent_r() și getaliasbyname_r() returnează o valoare diferită de zero în caz de eroare.

Baza de date alias implicită este fișierul /etc/aliases. Acesta poate fi modificat în fișierul /etc/nsswitch.conf.

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
setaliasent(), endaliasent(), getaliasent_r(), getaliasbyname_r() Siguranța firelor MT-Safe locale
getaliasent(), getaliasbyname() Siguranța firelor MT-Unsafe

GNU.

Sistemul NeXT are rutine similare:


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

Următorul exemplu compilează cu gcc example.c -o example. Acesta va afișa toate numele din baza de date de alias.

#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("Nume: %s\n", al->alias_name);
    }
    if (errno) {
        perror("citind alias");
        exit(EXIT_FAILURE);
    }
    endaliasent();
    exit(EXIT_SUCCESS);
}

getgrent(3), getpwent(3), getspent(3), aliases(5)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

31 octombrie 2023 Pagini de manual de Linux 6.06