Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用printf和inet_ntoa打印ip地址时出现的奇怪错误

使用printf和inet_ntoa打印ip地址时出现的奇怪错误
EN

Stack Overflow用户
提问于 2014-04-16 07:27:56
回答 1查看 1.5K关注 0票数 4
代码语言:javascript
运行
AI代码解释
复制
struct in_addr a,b,c,d;
if(inet_aton ("10.0.0.1", &a)!=-1 );
    printf("a:%s\n", inet_ntoa(a));
if(inet_aton ("10.0.0.2", &b)!=-1 )
    printf("b:%s\n", inet_ntoa(b));

打印到IP地址没有问题:

代码语言:javascript
运行
AI代码解释
复制
a:10.0.0.1
b:10.0.0.2

然而,我发现:

代码语言:javascript
运行
AI代码解释
复制
inet_aton ("10.0.0.3", &c);
inet_aton ("10.0.0.4", &d);
printf("c:%s %s\n", inet_ntoa(c), inet_ntoa(d));
printf("d:%s\n", inet_ntoa(d));

它打印:

代码语言:javascript
运行
AI代码解释
复制
c:10.0.0.3 d:10.0.0.3
d:10.0.0.4

奇怪的是,它在这一行打印了错误的d IP:

代码语言:javascript
运行
AI代码解释
复制
printf("c:%s %s\n", inet_ntoa(c), inet_ntoa(d));

我也不知道原因!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 07:31:40

inet_ntoa的手册上说:

字符串在静态分配的缓冲区中返回,随后的调用将覆盖该缓冲区。

printf("c:%s %s\n", inet_ntoa(c), inet_ntoa(d));中有两个函数覆盖相同的缓冲区。

尝试if (inet_ntoa(c) == inet_ntoa(d)),您可能会对结果感到惊讶。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23113801

复制
相关文章
Tornado部署时那些奇怪的错误
'ascii' codec can't encode characters in position 20-23: ordinal not in range(128) 在python main.py &无错误信息时,使用 nohup python main.py & 时却出现 错误 'ascii' codec can't encode characters in position 20-23: ordinal not in range(128) 其实是因为在将log信息输出到nohup.out文件的时候,会
NaOH
2018/05/29
7360
Typecho评论时可能出现的错误
根据URL得知应该是在发评论的时候出现的错误。很奇怪,因为很久之前这位博友jiuki's blog也给我反馈过一次。说明这问题不是偶然出现的,所以必须要解决才行。
Melody132
2020/03/13
1.5K0
dns地址和ip地址的区别_ip地址和域名一样吗
IP:每个连接到Internet上的主机都会分配一个IP地址,此ip是该计算机在互联网上的逻辑地址的唯一标识,计算机之间的访问就是通过IP地址来进行的。写法:十进制的形式,用“.”分开,叫做“点分十进制表示法”,如:127.0.0.1。IP地址采用二进制的形式表示的话很长,比较麻烦,为了便于使用,IP地址经常被写成十进制的形式。
全栈程序员站长
2022/09/27
11.5K0
dns地址和ip地址的区别_ip地址和域名一样吗
【TCP/IP】IP地址分类和特殊IP地址
IP地址是因特网技术中的一个非常重要的概念,IP地址在IP层实现了底层网络地址的统一,使因特网的网络层地址具有全局唯一性和一致性。IP地址含有位置信息,反映了主机的网络连接,使因特网进行寻址和路由选择的依据。
全栈程序员站长
2022/08/12
5K0
【TCP/IP】IP地址分类和特殊IP地址
IP地址和CIDR
IPV4的地址是一个32位的二进制数,由网络ID和主机ID两部分组成,用来在网络中唯一的标识一台计算机。IP地址通常用四组3位的十进制数表示,中间用.分割,例如:192.168.0.1。
大江小浪
2018/07/24
6.3K0
网站日志分析:ip地址出现次数统计
案例网站日志分析:ip地址出现次数统计# 统计网站服务器地址出现的次数#log路径log_file = r'E:/work/project/python/access.log'# 打开文件f_obj = open(log_file,mode='r')# 定义空列表,来接收值ip_list = []# 遍历文本for ip in f_obj: # 定义接受变量,用字符串的split方法分割,然后取第0位的值 clienIP = ip.split()[0] ip_list.append(cli
用户2089285
2023/04/15
1K0
IP地址和域名的关系
1、ip地址和域名是一对多的关系,一个ip地址可以有多个域名,但是相反,一个域名只能有一个ip地址; 2、ip地址是数字型的,为了方便记忆,才有了域名,通过域名地址就能找到ip地址; 3、ip,全称为互联网协议地址,是指ip地址,意思是分配给用户上网使用的网络协议的设备的数字标签; 4、常用的ip地址分为IPv4和IPv6两大类;
全栈程序员站长
2022/07/22
9.5K0
IP 地址的格式和分类
在网际层中,利用 IP 地址将数据传输到目的地。为了能够使数据正确地发送到目标主机上,网络上的 IP 地址必须有一定的规则来识别主机的位置。
杰哥的IT之旅
2020/06/18
1.9K0
优化爬虫程序使用代理IP时出现的TIME_WAIT和CLOSE_WAIT状态
为了提高爬虫程序的效率,我们通常使用代理IP来同时访问多个网站,避免被封禁。但是,使用代理IP也会带来一些问题。在Linux系统下,我们经常会遇到TIME_WAIT和CLOSE_WAIT状态的问题。
jackcode
2023/05/05
3710
优化爬虫程序使用代理IP时出现的TIME_WAIT和CLOSE_WAIT状态
android获取Mac地址和IP地址
(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法)
程思扬
2022/01/10
9.3K0
printf打印彩色字符,还能闪烁!
Printf不一样的玩法 在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显。同样,linux C下printf还有很多其他不常见的格式化输出形式。
DeROy
2021/03/12
2.6K0
printf打印彩色字符,还能闪烁!
公网 IP 地址和私有 IP 地址有什么区别?
IP地址,在我们平时工作中经常遇到,IP 地址是标识 Internet 或本地网络上的设备的唯一地址,IP 代表“Internet Protocol”,是一组规则,用于管理通过互联网或本地网络发送的数据格式。
网络技术联盟站
2023/03/01
5K0
公网 IP 地址和私有 IP 地址有什么区别?
访问网时出现403 Forbidden错误的原因:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113700.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
10.2K1
IDEA远程提交hadoop任务时出现的错误
上述问题解决:开启historyserver服务 mr-jobhistory-daemon.sh start historyserver
ZONGLYN
2019/08/08
2.3K0
java在用SimpleDateFormat格式化时间时月份出现奇怪值[通俗易懂]
这两天在做课设,关于图书管理系统的,其中在借书的记录中,时间记录的月份总是出现不正常的数值,大于12经常四十几五十几,经过对借书模块的跟踪,最后将错误定位到了时间格式化的这行代码
全栈程序员站长
2022/07/20
6160
域名和ip地址有什么关系?域名和ip地址的区别有哪些?
域名网站基本上是现在每个企业都会有的网络入口,通过网站的销售模式来销售商品,宣传企业的形象和产品。而我们在使用电脑的过程中也会接触到ip地址,并且随着域名接触的内容加多,就想着域名和ip地址有什么关系
用户8739990
2021/08/13
18.2K0
用python获取MAC地址和IP地址
https://docs.python.org/2.6/library/uuid.html
py3study
2020/01/09
6.5K0
网络地址是ip地址和子网掩码_ip地址和子网掩码之间的关系
IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。
全栈程序员站长
2022/09/20
3.9K0
网络地址是ip地址和子网掩码_ip地址和子网掩码之间的关系
独享IP地址的意义和作用
在当今数字化时代,独享IP地址正在成为越来越多企业和个人关注的话题。它是一种网络技术解决方案,为用户提供独立、专属的IP地址,与其他用户隔离开来。本文将探讨独享IP地址的意义和作用,以及它为用户带来的重要价值。
华科云商小彭
2023/09/07
3160
独享IP地址的意义和作用
点击加载更多

相似问题

inet_ntoa中奇怪的printf行为

20

验证IP地址时出现奇怪的行为

119

MYSQL INET_NTOA IP地址搜索

23

当我使用pthread和printf时出现奇怪的输出

40

printf打印字符时出现奇怪行为- LLDB调试器

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文