当前位置:  技术问答>linux和unix

一个sprintf函数问题

    来源: 互联网  发布时间:2014-12-27

    本文导语:  我用sprintf函数如下: sprintf(dst,"((src net %s and port %u) and (dst net %s and port %u))",inet_ntoa(srcip),srcport,inet_ntoa(dstip),dstport); (srcip和dstip都是struct in_addr结构体) 在调用此函数前,我打印了srcip和dstip的值是不一样的,...

我用sprintf函数如下:
sprintf(dst,"((src net %s and port %u) and (dst net %s and port %u))",inet_ntoa(srcip),srcport,inet_ntoa(dstip),dstport);
(srcip和dstip都是struct in_addr结构体)
在调用此函数前,我打印了srcip和dstip的值是不一样的,而最终结果好像第二个%s取的参数是inet_ntoa(srcip),导致两个%s的位置上值是一样的,我百思不得其解。请指教一下,这问题处在那儿了。

|
inet_ntoa 返回值用一个静态变量,所以,加上传参的指针,因而,最后字符串一样

|
inet_ntoa 返回的char*是静态分配缓冲区,两次返回的是同一个地址

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 写内核模块时有没有类似sprintf这样的方法
  • 程序判斷type與sprintf問題
  • 深入分析C中不安全的sprintf与strcpy
  • 如何在JAVA中实现类似VC中sprintf的功能
  • sprintf如何格式化64位的无符号整数
  • 基于C++中sprintf的错误总结详解
  • 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3