博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
值-结果参数
阅读量:6610 次
发布时间:2019-06-24

本文共 657 字,大约阅读时间需要 2 分钟。

我们已经知道,当把套接口地址传递给套接口函数时,总是通过指针传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递的方式取决于结构的传递的方向:从进程到内核,还是从内核到进程。
    1、从进程到内核传递的套接口结构有3个函数:bind,connect和sendto,这三个函数的一个参数是指向套接口结构的指针,另一个是结构的大小,如:
   

struct sockaddr_in serv;
/*fill in serv[]*/
connect(sockfd,(SA *)&serv,sizeof(serv));

   由于从进程到内核的参数是指向结构的指针和结构的大小,所以从进程到内核拷贝的数据是确定的。

    2、与前面的正好相反,从内核到进程传递的套接口地址结构有四个函数:accept,recvfrom,getsockname,和getpeername,其参数是:指向套接口结构的指针和指向表示结构大小的指针,如:

struct sockaddr_in cli;
socklen_t len;

len = sizeof(cli);
getpeername(unixfd,(SA *)&cli,&len);  /*len mey be change*/

   为何将结构大小由整数改为整数的指针呢?这是因为当函数被调用时,结构大小是一个值(value,此值告诉内核大小,是内核写结构是不至于越界),当函数返回时,结构大小又是一个结果(result,它告诉进程内核确实在结构中存储了信息),这种参数类型叫做值-结果参数。

转载地址:http://pmiso.baihongyu.com/

你可能感兴趣的文章
Android Arcface人脸识别sdk使用工具类
查看>>
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字......
查看>>
050:navie时间和aware时间详解
查看>>
百度地图车辆运动轨迹
查看>>
使用ReaderWriterLock类实现多用户读/单用户写同步
查看>>
springmvc + mybatis + ehcache + redis架构
查看>>
Python正则表达式初识(十)附正则表达式总结
查看>>
APICLOUD 1.1.0 开发环境搭建
查看>>
《Cadence 16.6电路设计与仿真从入门到精通》——导读
查看>>
Confluence 6 如何让我的小组成员知道那些内容是重要的
查看>>
找到一个适合的分布式文件系统之各种分布式文件系统优缺点对比
查看>>
索引失效的几个原因
查看>>
五险一金,你清楚吗?
查看>>
Ip核_fifo
查看>>
repquota命令--Linux命令应用大词典729个命令解读
查看>>
rabbitmq 管理及常用命令
查看>>
HTTP要被抛弃? 亚洲诚信携手宝塔开启HTTPS加密快速通道
查看>>
6.6 tar打包
查看>>
Spring MVC核心技术
查看>>
TCP协议如何保证传输的可靠性
查看>>