簡體   English   中英

recv()上的分段錯誤

[英]Segmentation fault on recv()

我正在使用send / recv在C語言的Unix上編寫客戶端/服務器程序。 我偶爾會從recv調用中獲得分段錯誤。 這種行為不是完全可重復的; 有時它會發生,有時程序會運行完成。

任何想法可能意味着什么?

如果分段錯誤在recv()調用本身中,那么這意味着傳遞給recv()的緩沖區沒有正確分配,或者不是你告訴recv()它的大小。

嗯,這通常意味着您收到的數據超過緩沖區所允許的數量。

例如,如果你malloc 20字節和recv 1000字節,你將遇到這個問題。

不幸的是,如果沒有看到代碼,並且在精神調試領域沒有一些非常迅速的進步,我們永遠都不會確定* a


* a這是發布代碼的微妙提示,順便說一句:-)

這也可能意味着在您寫入之前,另一側的套接字已關閉。 這是一個可能導致您的應用程序關閉的SIGPIPE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM