侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

getnetent_r函数用法详解

noerror
2022-11-09 / 0 评论 / 0 点赞 / 144 阅读 / 562 字 / 正在检测是否收录...

getnetent_r函数用法详解

getnetent_r函数简介

  • 头文件包含
#include <netdb.h>
  • 函数定义
int getnetent_r(struct netent * result_buf , char * buf ,
                size_t  buflen , struct netent ** result ,
                int * h_errnop );
int getnetbyname_r(const char * name ,
                struct netent * result_buf , char * buf ,
                size_t  buflen , struct netent ** result ,
                int * h_errnop );
int getnetbyaddr_r(uint32_t  net , int  type ,
                struct netent * result_buf , char * buf ,
                size_t  buflen , struct netent ** result ,
                int * h_errnop );

getnetent_r函数常见使用错误

  • 编译错误
    warning: implicit declaration of function ‘getnetent_r’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <netdb.h>

getnetent_r函数详细描述

getnetent_r () getnetbyname_r ()和getnetbyaddr_r ()函数分别是getnetent (3) getnetbyname (3)和getnetbynumber (3)的可重入等价物。它们的不同之处在于返回netent结构的方式,以及调用签名和返回值的函数。本手册页只描述了与不可重入函数的区别。
这些函数不返回指向静态分配的netent结构的指针作为函数结果,而是将该结构复制到result_buf 所指向的位置
buf数组用于存储返回的netent结构所指向的字符串字段。(不可重入函数在静态存储中分配这些字符串。)此数组的大小在buflen 中指定。如果buf太小,则调用失败,错误为ERANGE ,调用方必须使用更大的缓冲区重试。(对于大多数应用程序,长度为1024字节的缓冲区应该足够了。)
如果函数调用成功获得网络记录,则*result被设置为指向result_buf ;,否则,*result被设置为NULL。
h_errnop指向的缓冲区用于返回这些函数的不可重入版本将存储在全局变量h_errno中的值。

getnetent_r函数返回值

成功后,这些函数返回0。出错时,它们返回错误中列出的正错误号之一。
出错时,记录未找到( getnetbyname_r () getnetbyaddr_r ())或输入( getnetent_r ()) result的结尾设置为空。

getnetent_r函数错误码

  • ENOENT ( getnetent_r ())数据库中没有更多记录。
  • ERANGE buf太小。使用更大的缓冲区(和增加的buflen ))重试
0

评论区