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