SETALIASENT - Linux手册页
Linux程序员手册 第3部分
更新日期: 2020-06-09
名称
setaliasent,endaliasent,getaliasent,getaliasent_r,getaliasbyname,getaliasbyname_r-读取别名条目
语法
#包括
void setaliasent(void);
void endaliasent(void);
结构别名* getaliasent(void);
int getaliasent_r(结构别名*结果,
char * buffer,size_t buflen,结构别名** res);
结构别名* getaliasbyname(const char * name);
int getaliasbyname_r(const char * name,struct aliasent * result,
char * buffer,size_t buflen,结构别名** res);
说明
名称服务交换机(NSS)可用的数据库之一是别名数据库,其中包含邮件别名。 (要了解支持哪些数据库,请尝试使用getent --help。)提供了六个函数来访问别名数据库。
getaliasent()函数返回一个指向包含别名数据库中组信息的结构的指针。第一次调用它会返回第一个条目。此后,它将返回连续的条目。
setaliasent()函数将文件指针后退到别名数据库的开头。
endaliasent()函数关闭别名数据库。
getaliasent_r()是上一个函数的可重入版本。所请求的结构是通过第一个参数存储的,但是程序员也需要填充其他参数。没有提供足够的空间会导致功能失败。
函数getaliasbyname()使用name参数并搜索别名数据库。该条目作为指向结构别名的指针返回。
getaliasbyname_r()是上一个函数的可重入版本。所请求的结构通过第二个参数存储,但是程序员也需要填充其他参数。没有提供足够的空间会导致功能失败。
struct别名定义在:
struct aliasent { char *alias_name; /* alias name */ size_t alias_members_len; char **alias_members; /* alias name list */ int alias_local; };
返回值
函数getaliasent_r()和getaliasbyname_r()返回错误时的非零值。
文件
缺省别名数据库是文件/ etc / aliases。可以在/etc/nsswitch.conf文件中进行更改。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
setaliasent(),endaliasent(),getaliasent_r(),getaliasbyname_r() | Thread safety | MT-Safe locale |
getaliasent(),getaliasbyname() | Thread safety | MT-Unsafe |
遵循规范
这些例程是glibc特定的。 NeXT系统具有类似的例程:
#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示例进行编译。它将所有名称转储到别名数据库中。
#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); }
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。