|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
error: invalid conversion from `int*' to `socklen_t*'
各位大蝦:在c的socket編程中,在方法
accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size)
出現以下錯誤:
error: invalid conversion from `int*' to `socklen_t*'
(是不是sin_size未轉化成socklen_t?) |
error: invalid conversion from `int*' to `socklen_t*'
unix上的accept最後一個參數現在已改成socklen_t類型
你可以看看它的man
另外
在許多系統中這個變量仍然定義成一個ing
也可以試用強制類型轉換看看
雖然不是很安全
accept(sockfd,(struct sockaddr *)(&client_addr),(int*)&sin_size) |
error: invalid conversion from `int*' to `socklen_t*'
1、AF_CCITT中
int accept(int s, void *addr, int *addrlen);
_XOPEN_SOURCE_EXTENDED (UNIX 98)中
int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
Obsolescent _XOPEN_SOURCE_EXTENDED (UNIX 95)中
int accept(int s, struct sockaddr *addr, size_t *addrlen);
對於系統而言,移植性較好的方式是
int accept(int, void *, int *);
對於你的系統具體是怎麼定義的,包括socklen_t或size_t或int具體有多大,請查看你的系統頭文件。
2、建議你將accept最後一個參數定義為你man出來的類型。盡量少用強制類型轉換。 |
| |