(筆記)unix套介面的值-結果參數

來源:互聯網
上載者:User
套介面地址結構是在進程和核心中之間傳遞的。


1.  
從進程到核心傳遞套介面地址結構有三個函數:bind, connet和senddto,這三個函數的一個參數是指向通訊端地址結構的一個指           針,另一個參數是結構的整數大小。例如:
     struct sockaddr_in serv;     connect(sockfd, (SA*)&serv, sizeof(serv));

     通過將指標和指標所指向結構的大小傳遞給核心,那麼從進程到核心的過程便知道了要拷貝資料的多少。
2.  從核心到進程傳遞套介面地質結構有四個函數: accept, recvfrom, getsockname和getpeername。這四個函數的兩個相同參數是:指        向要介面地址結構的指標和指向表示結構大小的整數的指標,例如: 
 

     struct sockaddr_un cli;     socklen_t len = sizeof(cli);     getpeername(unixfd, (SA*)&cli, &len);

     之所以將結構大小由整數轉為指向整數的指標,是因為:當函數被調用時,結構大小事一個值(value,該值告訴核心該結構的大小,避免資料的讀取越界);當函數返回時,結構大小是一種結果(result, 核心通過此結果來告訴進程它在這結構裡實際儲存了多少資訊)。因此這種類型的參數叫做值-結果(value-result)參數,。
(資料參考:UNIX網路編程(第一卷:套介面API))

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.