本文簡要介紹ruby語言中 Socket::AncillaryData.unix_rights
的用法。
用法
unix_rights → array-of-IOs or nil
返回 UNIX 域套接字中SCM_RIGHTS 控製消息的 IO
對象數組。
該數組在實例化時附加到ancillarydata
。例如, BasicSocket#recvmsg
在收到 SCM_RIGHTS 控製消息並給出 :scm_rights=>true 選項時附加數組。
# recvmsg needs :scm_rights=>true for unix_rights
s1, s2 = UNIXSocket.pair
p s1 #=> #<UNIXSocket:fd 3>
s1.sendmsg "stdin and a socket", 0, nil, Socket::AncillaryData.unix_rights(STDIN, s1)
_, _, _, ctl = s2.recvmsg(:scm_rights=>true)
p ctl #=> #<Socket::AncillaryData: UNIX SOCKET RIGHTS 6 7>
p ctl.unix_rights #=> [#<IO:fd 6>, #<Socket:fd 7>]
p File.identical?(STDIN, ctl.unix_rights[0]) #=> true
p File.identical?(s1, ctl.unix_rights[1]) #=> true
# If :scm_rights=>true is not given, unix_rights returns nil
s1, s2 = UNIXSocket.pair
s1.sendmsg "stdin and a socket", 0, nil, Socket::AncillaryData.unix_rights(STDIN, s1)
_, _, _, ctl = s2.recvmsg
p ctl #=> #<Socket::AncillaryData: UNIX SOCKET RIGHTS 6 7>
p ctl.unix_rights #=> nil
相關用法
- Ruby AncillaryData.unix_rights用法及代碼示例
- Ruby AncillaryData.ipv6_pktinfo_ifindex用法及代碼示例
- Ruby AncillaryData.cmsg_is?用法及代碼示例
- Ruby AncillaryData.int用法及代碼示例
- Ruby AncillaryData.ipv6_pktinfo_addr用法及代碼示例
- Ruby AncillaryData.level用法及代碼示例
- Ruby AncillaryData.family用法及代碼示例
- Ruby AncillaryData.new用法及代碼示例
- Ruby AncillaryData.ip_pktinfo用法及代碼示例
- Ruby AncillaryData.type用法及代碼示例
- Ruby AncillaryData.timestamp用法及代碼示例
- Ruby AncillaryData.ipv6_pktinfo用法及代碼示例
- Ruby AncillaryData.data用法及代碼示例
- Ruby AncillaryData.inspect用法及代碼示例
- Ruby AnonClass類用法及代碼示例
- Ruby Array.push用法及代碼示例
- Ruby Array.hash用法及代碼示例
- Ruby ARGF.path用法及代碼示例
- Ruby Addrinfo.ip_address用法及代碼示例
- Ruby Array permutation()用法及代碼示例
- Ruby Array.to_a用法及代碼示例
- Ruby Array.to_h用法及代碼示例
- Ruby Array.to_s用法及代碼示例
- Ruby Array class fill()用法及代碼示例
- Ruby Array.array + other_array用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 AncillaryData.unix_rights。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。