pub fn tee(
fd_in: BorrowedFd<'_>,
fd_out: BorrowedFd<'_>,
length: usize,
flags: SpliceFlags,
) -> Result<usize, Errno>Expand description
Duplique le contenu d’un pipe source dans un pipe destination sans consommer les données de la source.
Wrappeur de tee(2) (Linux 2.6.17+). Les deux FDs doivent être
des pipes. Contrairement à splice, les données restent disponibles
dans fd_in après l’opération.
§Parameters
fd_in: pipe source.fd_out: pipe destination.length: nombre maximum d’octets à dupliquer.flags: drapeaux [SpliceFlags] (typiquementNONBLOCK).
§Errors
EINVAL:fd_inoufd_outn’est pas un pipe.EAGAIN: modeNONBLOCKet l’opération bloquerait.EINTR: interrompu par un signal.
§Examples
use air_sys_syscall::ipc::{pipe2, tee};
use air_sys_types::{PipeFlags, SpliceFlags};
use air_sys_types::fd::AsFd;
let (r1, w1) = pipe2(PipeFlags::CLOEXEC).expect("pipe2");
let (r2, w2) = pipe2(PipeFlags::CLOEXEC).expect("pipe2");
let _ = tee(r1.as_fd(), w2.as_fd(), 4096, SpliceFlags::empty());