gethostbyname的线程安全


最近线上遇到一个问题 导致程序崩溃 最后查到是gethostbyname的问题 把代码精简了 如下:

bool test(char* host,int port)
{
    hostent *m_phostent=gethostbyname(host);
    if(m_phostent==NULL)return false;
    struct in_addr ip_addr;
    memcpy(&ip_addr,m_phostent->h_addr_list[0],4);///h_addr_list[0]里4个字节,每个字节8位
    return true;
}

这个代码咋一看也没有什么问题,但是在多线程环境下有一定几率崩溃的 最后通过加锁解决的


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM