本文簡要介紹rust語言中 std::os::unix::net::SocketAncillary.add_fds
的用法。
用法
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 SocketAncillary.clear用法及代碼示例
- Rust SocketAncillary.truncated用法及代碼示例
- Rust SocketAncillary.new用法及代碼示例
- Rust SocketAncillary用法及代碼示例
- Rust SocketAddrV6.ip用法及代碼示例
- Rust SocketAddr.port用法及代碼示例
- Rust SocketAddr.as_abstract_namespace用法及代碼示例
- Rust SocketAddr.as_pathname用法及代碼示例
- Rust SocketAddrV4.ip用法及代碼示例
- Rust SocketAddrV6.set_ip用法及代碼示例
- Rust SocketAddrV6.new用法及代碼示例
- Rust SocketAddr用法及代碼示例
- Rust SocketAddrV4.set_port用法及代碼示例
- Rust SocketAddrV6用法及代碼示例
- Rust SocketAddrV6.set_scope_id用法及代碼示例
- Rust SocketAddr.is_ipv6用法及代碼示例
- Rust SocketAddrV4.set_ip用法及代碼示例
- Rust SocketAddrV6.flowinfo用法及代碼示例
- Rust SocketAddrV6.scope_id用法及代碼示例
- Rust SocketAddr.from_abstract_namespace用法及代碼示例
- Rust SocketAddr.is_ipv4用法及代碼示例
- Rust SocketAddrV6.set_port用法及代碼示例
- Rust SocketAddr.set_port用法及代碼示例
- Rust SocketAddr.ip用法及代碼示例
- Rust SocketAddrV6.set_flowinfo用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::os::unix::net::SocketAncillary.add_fds。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。