唯一鏈接

unlink:刪除一個文件,若成功則返回0,否則返回-1,錯誤原因存於errnounlink()會刪除參數pathname指定的文件。如果該文件名爲最後連接點,但有其他進程打開了此文件,則在所有關於此文件的文件描述詞皆關閉後纔會刪除。如果參數pathname爲一符號連接,則此連接會被刪除。

offsetof : #define offsetof (size_t) (((s*)0)->m):stddef.h中定義

(s*)0是騙編譯器說有一個指向類(或結構)s的指針,其地址值0

&((s *)0)->m   是要取得類s中成員變量m的地址. 因基址爲0,這時m的地址當然就是m在s中的偏移


原因:unix 域套接字的效率高於網絡域的套接字:用於統一臺機器上運行的進程間通信。

serv_listen:

1 獲取socket

2填寫sockaddr_un 結構

3 bind

4linsten:告訴內核我是服務器進程

serv_accept:

1accept:獲取端口處來請求服務的客戶地址

2然後取出套接字狀態stat

3判斷是否爲客戶進程來訪問

cli_connect

1獲取socket

2填寫地址:確保套接字名字沒被打開:unlink(sun_path)

3bind

4,填寫服務器地址

5請求鏈接connect

發佈了22 篇原創文章 · 獲贊 3 · 訪問量 8084
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章