2013-02-09 55 views
0

我遇到了發送一個奇怪的行爲()函數調用,其中socketfd是0,p是「測試\ n」,長度爲5,標誌是0:的send()函數不返回-1從未/未連接套接字

size_t n = 0; 

    n = send(socketfd, p, length, flags); 

發送似乎在正18446744073709551615

功能文檔說,它返回-1返回錯誤的值。

的代碼被編譯在Mac OS X 10.7獅子。任何想法發生了什麼?

+0

什麼是變量n的TIPE?你如何測試它的價值? – LtWorf 2013-02-09 23:38:02

+0

更新:它是爲size_t – Ahmed 2013-02-09 23:39:44

回答

1

爲size_t是一個無符號類型,它不能包含負值。 實際上,如果您檢查send的聯機幫助頁,則其返回類型是ssize_t,它是已簽名的版本並可包含負值。

嘗試改變類型。

+0

優秀的,謝謝:) – Ahmed 2013-02-09 23:43:15

+0

標記爲接受的話,請:-) – LtWorf 2013-02-09 23:48:30

+0

它需要至少5分鐘,以紀念它的答案,做了現在:) – Ahmed 2013-02-09 23:50:29

相關問題