GETRPCENT_R - Linux手册页

时间:2019-08-20 18:00:31  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

getrpcent_r,getrpcbyname_r,getrpcbynumber_r-获取RPC条目(可重入)

语法

#include <netdb.h>

int getrpcent_r(struct rpcent *result_buf, char *buf,
                size_t buflen, struct rpcent **result);

int getrpcbyname_r(const char *name,
                struct rpcent *result_buf, char *buf,
                size_t buflen, struct rpcent **result);

int getrpcbynumber_r(int number,
                struct rpcent *result_buf, char *buf,
                size_t buflen, struct rpcent **result);

Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):

getrpcent_r(),getrpcbyname_r(),getrpcbynumber_r():
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE _SVID_SOURCE

说明

getrpcent_r(),getrpcbyname_r()和getrpcbynumber_r()函数分别是getrpcent(3),getrpcbyname(3)和getrpcbynumber(3)的可重入等效项。它们在返回rpcent结构的方式以及调用签名和返回值的函数方面有所不同。本手册页仅介绍与不可重入功能的区别。

这些函数没有将指向静态分配的rpcent结构的指针作为函数结果返回,而是将结构复制到result_buf指向的位置。

buf数组用于存储返回的rpcent结构所指向的字符串字段。 (nonreentrant函数在静态存储中分配这些字符串。)此数组的大小在buflen中指定。如果buf太小,则调用将失败,并显示错误ERANGE,并且调用方必须使用更大的缓冲区再次尝试。 (对于大多数应用程序,长度为1024字节的缓冲区应该足够了。)

如果函数调用成功获取RPC记录,则将* result设置为指向result_buf;否则,* result设置为NULL。

返回值

成功时,这些函数返回0。错误时,它们返回ERRORS中列出的正错误号之一。

错误时,未找到记录(getrpcbyname_r(),getrpcbynumber_r())或输入结尾(getrpcent_r())的结果设置为NULL。

错误说明

ENOENT
(getrpcent_r())数据库中没有更多记录。
ERANGE
buf太小。使用更大的缓冲区(并增加buflen)再试一次。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
getrpcent_r(),getrpcbyname_r(),getrpcbynumber_r()Thread safetyMT-Safe locale

遵循规范

这些功能是GNU扩展。具有相同名称的功能在其他一些系统上也存在,尽管通常具有不同的调用签名。

另外参见

getrpcent(3),rpc(5)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/