2015-04-03 56 views

回答

3

您可以使用「抽象套接字地址」創建一個unix域套接字。只需將sun_path字符串的第一個字符sockaddr_un傳遞給bind即可'\0'。在此初始NUL之後,將一個字符串寫入sun_path的其餘部分,並用NUL(或其他)填充到UNIX_PATH_MAX

以這種方式創建的套接字不會有任何文件系統條目,而是將被放置在不可見的系統範圍套接字名稱空間中。套接字名稱是而不是以空字符結尾的字符串;它是一個以NUL開頭的UNIX_PATH_MAX長度字符串,而其他NUL沒有特殊意義。因此,填寫該名稱非常重要,否則會將額外的未初始化的內存垃圾放入該名稱中,從而導致意外的結果。按照慣例,這通常是用NUL墊完成的,但這取決於你。

欲瞭解更多信息,請參閱unix(7),特別是有關抽象套接字地址的部分。一個完整的例子也可以找到here

+0

工程就像一個魅力!謝謝!! – daehee 2015-04-03 09:10:59