SETNETGRENT - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
setnetgrent,endnetgrent,getnetgrent,getnetgrent_r,innetgr-处理网络组条目
语法
#include <netdb.h> int setnetgrent(const char *netgroup); void endnetgrent(void); int getnetgrent(char **host, char **user, char **domain); int getnetgrent_r(char **host, char **user, char **domain, char *buf, size_t buflen); int innetgr(const char *netgroup, const char *host, const char *user, const char *domain);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
setnetgrent(),endnetgrent(),getnetgrent(),getnetgrent_r(),innetgr():
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE _SVID_SOURCE
说明
网络组是SunOS的发明。网络组数据库是字符串三元组(主机名,用户名,域名)或其他网络组名的列表。三元组中的任何元素都可以为空,这意味着任何匹配项。此处描述的功能允许访问网络组数据库。文件/etc/nsswitch.conf定义了要搜索的数据库。
setnetgrent()调用定义了随后的getnetgrent()调用将搜索的网络组。 getnetgrent()函数检索下一个网络组条目,并返回主机,用户,域中的指针。空指针表示相应的条目与任何字符串匹配。指针仅在不调用其他与netgroup相关的功能时才有效。为避免此问题,可以使用GNU函数getnetgrent_r()将字符串存储在提供的缓冲区中。要释放所有分配的缓冲区,请使用endnetgrent()。
在大多数情况下,您只想检查三元组(主机名,用户名,域名)是否是网络组的成员。函数innetgr()可以用于此目的,而无需调用以上三个函数。同样,空指针是通配符,并且匹配任何字符串。该函数是线程安全的。
返回值
这些函数成功返回1,失败返回0。
文件
/ etc / netgroup
/etc/nsswitch.conf
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
setnetgrent(), getnetgrent_r(), innetgr() | Thread safety | MT-Unsafe race:netgrent locale |
endnetgrent() | Thread safety | MT-Unsafe race:netgrent |
getnetgrent() | Thread safety | MT-Unsafe race:netgrent race:netgrentbuf locale |
在上表中,race:netgrent中的netgrent表示如果在程序的不同线程中并行使用了setnetgrent(),getnetgrent_r(),innetgr(),getnetgrent()或endnetgrent()中的任何函数,则数据种族可能会发生。
遵循规范
这些函数不在POSIX.1中,但是setnetgrent(),endnetgrent(),getnetgrent()和innetgr()在大多数UNIX系统上可用。 getnetgrent_r()在其他系统上并不广泛可用。
备注
在BSD实现中,setnetgrent()返回void。
另外参见
sethostent(3),setprotoent(3),setservent(3)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。