我是網路編程的新手,目前正在遵循Beej 的指南以熟悉此內容。
書在介紹這個getaddrinfo()函式的時候,跟我講了使用gai_strerror()將回傳的錯誤碼解釋為可讀字串。但是,這本書沒有介紹 for 的錯誤處理方法connect(),我想知道是否有類似的函式可以完成與gai_strerror()for相同的作業getaddrinfo()?
這是我的代碼:
if((status=connect(sockfd, res->ai_addr, res->ai_addrlen)) != 0){
fprintf(stderr, "connect: %s\n", function_to_be_used(status));
return 2;
}
uj5u.com熱心網友回復:
從connect函式參考:
如果連接或系結成功,則回傳零。出錯時,回傳 -1,并設定 errno 以指示錯誤。
因此,您需要以下代碼:
fprintf(stderr, "connect: %s\n", strerror(errno));
getaddrinfo錯誤處理是一種例外,大多數 API 設定errno為錯誤,可以使用strerror.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/360436.html
