《UNIX网络编程》中 “值-结果参数(value-result)”应该如何理解?
2、与前面的传递方向相反,从内核到进程传递套接口地址结构有四个函数:accept、recvfrom、getsockname 和 getpeername。这4个函数的两个参数是:指向套接口地址结构的指针和指向表示结构大小的整数的指针,例如:
struct sockaddr_un cli; /* Unix domain */socklen_t len;len = sizeof(cli);getpeername(unixfd, (SA*) &cli, &len )/* len may have changed */
#include <stdio.h>void a2(int *a){ int tmp; tmp = (*a) * (*a); *a = tmp;}int main(int ac, char **av){ int a; a = 5; printf("a = %d\n", a); a2(&a); printf("a = %d\n", a); return 0;}
[解决办法]
直接用len的话,函数怎么能修改这个参数?
[解决办法]
在从内核到进程传递套接口地址时会设置len的值,如果直接用len,就取不到那个值了。