socklen_t在windows和linux平台下的頭文件定義


windows平台下:
文件:#include<ws2tcpip.h>

linux平台下
下面兩個頭文件都有定義
1)#include <sys/socket.h>
2)#include <unistd.h>

詳細定義:typedef int socklen_t;

翻譯:

任何完整的庫必須定義socklen_t和int相同的尺寸大小。
別的事情打破了BSD套接字層的填充。POSIX起初確實將
定義為size_t。我已經向他們大聲訴說這件事情。定
義其為size_t類型是非常糟糕的,特別是size_t在64位
操作系統上,很少和int保持同樣的尺寸大小。例如,BSD
套接字接口只接受和int尺寸大小的值,不管如何,POSIX
組織最終想出一個辦法,創建socklen_t的類型,他們本不
該插手這個類型。但是曾經他們確實認為為它定義一個類型
是必須的,為了某些令人費解的理由。

 

參考:http://stackoverflow.com/questions/3531474/socklen-t-undeclared-when-compiling-c-code


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM