【问题标题】:gethostbyname() and valgrindgethostbyname() 和 valgrind
【发布时间】:2010-03-24 10:00:02
【问题描述】:

每当我在 C 代码中调用 gethostbyname() 时,我都会收到此错误。

==7983== Invalid read of size 1
==7983==    at 0x412AB2C: ____strtoul_l_internal (strtol_l.c:298)
==7983==    by 0x412A46F: strtoul (strtol.c:110)
==7983==    by 0x41D427E: inet_aton (inet_addr.c:143)
==7983==    by 0x41D8FF3: __nss_hostname_digits_dots (digits_dots.c:144)
==7983==    by 0x41DD0F9: gethostbyname (getXXbyYY.c:109)
==7983==    by 0x804BE6F: connexion_function (in  ***************)
==7983==    by 0x8049A8F: main (in ***************)

有什么想法吗? 谢谢,

【问题讨论】:

  • 你为 gethostbyname 提供了哪些参数以及如何初始化它们?
  • 感谢 ypnos,我将使用 getaddrinfo() 代替...

标签: c valgrind gethostbyname


【解决方案1】:

这可能与gethostbyname是不可重入的并返回一个所有线程共享的对象有关。您可能应该使用getaddrinfo 和freeaddrinfo 代替gethostbyname。

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 2017-09-18
    • 2012-03-17
    • 1970-01-01
    • 2014-01-31
    • 2012-03-02
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多