免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6786 | 回复: 12
打印 上一主题 下一主题

关于getprotobyname [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-10 14:12 |只看该作者 |倒序浏览
还有getprotoent,getprotobynumber等,它们都返回一个指向struct protoent结构变量的指针,那么这个变量的空间是在哪分配的?不用free吗?
程序结束后,它会自动free吗?

论坛徽章:
0
2 [报告]
发表于 2007-08-10 14:32 |只看该作者
调用者不需要free。

论坛徽章:
0
3 [报告]
发表于 2007-08-10 14:32 |只看该作者
不用free 静态空间

论坛徽章:
0
4 [报告]
发表于 2007-08-10 14:46 |只看该作者
谢谢。
现在好像有了getprotobyname_r等_r后缀的函数,可能更好一些。不过程序员手册里没有说明。

论坛徽章:
0
5 [报告]
发表于 2007-08-10 14:48 |只看该作者
man里面自己写的,
     These functions use a static data space; if the data is needed for future
     use, it should be copied before any subsequent calls overwrite it.  

和inet_ntoa()类似,比如printf("%s %s", inet_ntoa(sip), inet_ntoa(dip));想打印源ip和目的ip
就会打印出同一个字符串,要分成2句才行

论坛徽章:
0
6 [报告]
发表于 2007-08-10 14:54 |只看该作者
原帖由 caijimin 于 2007-8-10 14:48 发表
man里面自己写的,
     These functions use a static data space; if the data is needed for future
     use, it should be copied before any subsequent calls overwrite it.  

和inet_ntoa()类似, ...

你用的是什么系统?手册描述的比我的系统好。

论坛徽章:
0
7 [报告]
发表于 2007-08-10 15:04 |只看该作者
Linux程序员手册对inet_ntoa的空间分配方式有说明。对getprotobyname好像没有。

论坛徽章:
0
8 [报告]
发表于 2007-08-10 17:45 |只看该作者
你用的是什么系统?手册描述的比我的系统好。


FreeBSD

论坛徽章:
0
9 [报告]
发表于 2007-08-10 18:50 |只看该作者
原帖由 caijimin 于 2007-8-10 17:45 发表


FreeBSD

linux也有的。
比如man 3p getprotoent

APPLICATION USAGE
       The   getprotobyname(),  getprotobynumber(),  and  getpro-
       toent() functions may  return  pointers  to  static  data,
       which  may  be  overwritten  by subsequent calls to any of
       these functions.

论坛徽章:
0
10 [报告]
发表于 2007-08-10 18:51 |只看该作者
原帖由 hohoxu_hao115 于 2007-8-10 14:46 发表
谢谢。
现在好像有了getprotobyname_r等_r后缀的函数,可能更好一些。不过程序员手册里没有说明。


哥们,那些是已经过时的,不推荐的。只是为了兼容以前的软件保留的接口。还是不用_r的吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP