Linux socket accept尽信书不如无书

关于Linux socket 里面的   int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)函数,很多书籍都把第三个参数搞错,以为第三个参数用来用来返回addr的类型,所以传个指针进去,却是表面上很像。一般情况下addrlen所指向的地址要是没有初始化(不是addrlen没有初始化,就像socklen_t a;sockelen_t addrlen=&a)都不会出现问题,但是要是你不幸运addrlen所指向的地址里存储的值是负数,那就会出现奇怪的现象,那样真的会很痛苦。所以切记什么事情都不要想当然,要是函数有返回值的,一定要通过返回值来判断函数是否执行成功。下面再贴出Linux 官方关于accept的用法

   The addrlen argument is a value-result argument: the caller  must  ini‐
       tialize  it  to contain the size (in bytes) of the structure pointed to
       by addr; on return it will contain the actual size of the peer address.

 尽信书不如无书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值