• 值结果参数


    我们已经知道,当把套接口地址传递给套接口函数时,总是通过指针传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递的方式取决于结构的传递的方向:从进程到内核,还是从内核到进程。
        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,它告诉进程内核确实在结构中存储了信息),这种参数类型叫做值-结果参数。

  • 相关阅读:
    tf-idf sklearn
    特征工程——特征预处理
    dict 字典
    特征预处理——特征表达
    特征工程之特征选择
    机器学习技巧学习
    dataframe去重 drop_duplicates
    dataframe 转为list
    XGboost
    StratifiedShuffleSplit()函数 实现对数据集的划分
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2116620.html
Copyright © 2020-2023  润新知