值-结果参数

当往一个套接字函数传递一个套接字地址结构时,该结构总是以引用形式来传递,也就是说传递的是指向该结构的一个指针。

该结构的长度也作为一个参数来传递,不过其传递方式取决于该结构的传递方向:进程->内核    内核->进程

1)进程->内核 传递套接字地址结构的函数有3个:bind、connect、sendto

这些函数的一个参数是指向某个套接字地址结构的指针,另一个参数是该结构的整数大小

2)内核->进程 传递套接字地址结构的函数有4个:accept、recvfrom、getsockname、getpeername

这4个函数的其中2个参数是指向某个套接字地址结构的指针和指向表示该结构大小的整数变量的指针

把套接字地址结构大小这个参数从一个整数改变为指向某个整数变量的指针,其原因:

当函数被调用时,结构大小是一个值(value),它告诉内核该结构的大小,这样内核在写该结构时不至于越界;

当函数返回时,结构大小又是一个结果(result),它告诉进程内核在该结构体究竟存储了多少信息。

这种类型的参数称为:值-结果参数

========================if i have some wrong, please give me a message, thx.========================
原文地址:https://www.cnblogs.com/ailx10/p/5347426.html