由getaddrinfo返回的存储空间,包括addrinfo结构、ai_addr结构和ai_canonname字符串,都是用malloc动态获取的。这些空间可调用 freeaddrinfo释放。其原型如下:

#include <netdb.h>
void freeaddrinfo (struct addrinfo*ai);

ai指向getaddrinfo返回的第一个addrinfo结构。在该链表中的所有结构,以及这些结构所指向的动态存储空间都被释放。假设我们调用getaddrinfo,顺着addrinfo结构链表找到所需的结构,然后只复制该addrinfo结构以保存其信息,再调用 freeaddrinfo,就会产生一个潜藏的错误。原因是addrinfo结构中的指针指向动态分配的内存。因此由我们保存的结构指向的内存在调用 freeaddrinfo后就释放,可能将作它用。只复制addrinfo结构,而不复制addrinfo结构所指向的其他结构,叫做浅拷贝或浅复制。复制addrinfo结构,同时复制addrinfo结构所指向的其他结构,称为深拷贝或深复制

网络编程学习笔记(freeaddrinfo函数)相关推荐

  1. 网络编程学习笔记(shutdown函数)

    终止网络连接的正常方法是close,但close有两个限制,可由shutdown来避免 1.close将描述字的访问计数减1,仅在此计数为0时才关闭套接口.用shutdown可以激发TCP的正常连接终 ...

  2. 网络编程学习笔记(udp_client函数)

    创建一个未连接的UDP套接口的客户函数,其代码如下: #include <netdb.h> #include <sys/socket.h> #include <netin ...

  3. 网络编程学习笔记(socketpair函数)

    socketpair函数建立一对相互连接的套接口,这个函数只对Unix域套接口适用,其定义如下: #include <sys/socket.h> int socketpair(int fa ...

  4. 网络编程学习笔记(getnameinfo函数)

    这个函数与getaddrinfo互补,它以一个套接口地址为参数,返回一个描述主机的字符串和一个描述服务的字符串.其函数原型如下: #include <netdb.h> int getnam ...

  5. 网络编程学习笔记(udp_server函数)

    创建一个UDP口的服务端,其代码如下: #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h ...

  6. 网络编程学习笔记(udp_connect函数)

    创建一个连接UDP套接口的客户端,代码如下: #include <netdb.h> #include <sys/socket.h> #include <netinet/i ...

  7. 网络编程学习笔记(tcp_listen函数)

    执行tcp服务器程序的一般操作步骤:创建一个tcp套接口,给它捆绑服务器众所周知端口,并允许接受外来的连接请求,其代码如下: #include <netdb.h> #include < ...

  8. 网络编程学习笔记(tcp_connect函数)

    执行客户端程序的一般操作步骤,创建一个TCP套接口并与服务器建立连接,其代码如下: #include <netdb.h> #include <netinet/in.h> #in ...

  9. 网络编程学习笔记(getaddrinfo函数)

    函数getaddrinfo在库函数中隐藏了所有协议依赖性.应用 程序只需要处理由getaddrinfo填写的套接口地址结构.其函数原型为: #include <netdb.h> int g ...

最新文章

  1. Ubuntu PyCharm cv2 无代码提示解决方法
  2. Hive中JOIN操作
  3. 德力西电气签约永洪科技,数字化赋能电气制造新征程
  4. 使用neo4j_知识图谱Task00:Neo4j安装配置
  5. [转]简单介绍如何用Reporting Service制作报表
  6. Linux命令整合之find
  7. WakaTime 记录你的时间(Moana 自动同步信息客户端)
  8. http协议中的响应代码从 1xx ~ 5xx,一共有41种
  9. ffmpeg 推流命令记载
  10. 计算机休眠唤醒后 网络受限,彻底解决win10系统待机、休眠被唤醒后笔记本WIFI无线网无法连接的问题-网络教程与技术 -亦是美网络...
  11. 解决jy61陀螺仪传感器读数跳动的问题
  12. 怎样修改PDF中的文本的字体
  13. Beyond Short Snippets: Deep Networks for Video Classification
  14. Kotlin 元编程(注解,反射)
  15. 【数据库】数据库期末考试复习试题与答案
  16. 百度飞桨“万有引力”2022首站落地苏州,全面启动中小企业赋能计划
  17. win7查找计算机在哪里,win7搜索在哪
  18. ABAQUS INP文件详解
  19. Eolink 10月企业与产品动态速览
  20. 【区块链新手快速入门】如何构建一个区块链

热门文章

  1. 暑期项目经验(十)--struts + poi
  2. Html:upload
  3. 动态修改数据窗口的数据源
  4. 设计模式心得笔记--简单工厂
  5. AutoCAD 命令参考手册
  6. python文件命名可以用中文吗-已经十多年了!你知道 Python 可以用中文命名变量吗?...
  7. python绘制3维图-python——绘制二元高斯分布的三维图像,
  8. python的优缺点有哪些-python的优缺点有哪些
  9. python读取txt文件内容-python读取压缩包里面所有*.txt文件的内容
  10. python常用内置函数总结-python常用内置函数整理—反射