本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。