用法
pub fn add_fds(&mut self, fds:&[RawFd]) -> bool
将文件说明符添加到辅助数据。
如果缓冲区中有足够的空间,该函数将返回true
。如果没有足够的空间,则不附加任何文件说明符。从技术上讲,这意味着此操作会添加一个级别为 SOL_SOCKET
和类型为 SCM_RIGHTS
的控制消息。
示例
#![feature(unix_socket_ancillary_data)]
use std::os::unix::net::{UnixStream, SocketAncillary};
use std::os::unix::io::AsRawFd;
use std::io::IoSlice;
fn main() -> std::io::Result<()> {
let sock = UnixStream::connect("/tmp/sock")?;
let mut ancillary_buffer = [0; 128];
let mut ancillary = SocketAncillary::new(&mut ancillary_buffer[..]);
ancillary.add_fds(&[sock.as_raw_fd()][..]);
let mut buf = [1; 8];
let mut bufs = &mut [IoSlice::new(&mut buf[..])][..];
sock.send_vectored_with_ancillary(bufs, &mut ancillary)?;
Ok(())
}
相关用法
- Rust std::os::unix::net::SocketAncillary.new用法及代码示例
- Rust std::os::unix::net::SocketAncillary.clear用法及代码示例
- Rust std::os::unix::net::SocketAncillary.truncated用法及代码示例
- Rust std::os::unix::net::SocketAncillary用法及代码示例
- Rust std::os::unix::net::SocketAddr.is_unnamed用法及代码示例
- Rust std::os::unix::net::SocketAddr.as_pathname用法及代码示例
- Rust std::os::unix::net::SocketAddr.from_abstract_namespace用法及代码示例
- Rust std::os::unix::net::SocketAddr用法及代码示例
- Rust std::os::unix::net::SocketAddr.as_abstract_namespace用法及代码示例
- Rust std::os::unix::net::UnixDatagram.send_to用法及代码示例
- Rust std::os::unix::net::UnixStream.write_timeout用法及代码示例
- Rust std::os::unix::net::UnixStream.pair用法及代码示例
- Rust std::os::unix::net::UnixDatagram.set_nonblocking用法及代码示例
- Rust std::os::unix::net::UnixStream.peer_addr用法及代码示例
- Rust std::os::unix::net::UnixStream.take_error用法及代码示例
- Rust std::os::unix::net::UnixStream.set_read_timeout用法及代码示例
- Rust std::os::unix::net::UnixDatagram.set_passcred用法及代码示例
- Rust std::os::unix::net::UnixDatagram.local_addr用法及代码示例
- Rust std::os::unix::net::UnixDatagram.unbound用法及代码示例
- Rust std::os::unix::net::UnixDatagram用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::os::unix::net::SocketAncillary.add_fds。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。