ssw/doc/rustix/io/index.html
2023-01-09 19:23:20 +01:00

67 lines
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="I/O operations."><meta name="keywords" content="rust, rustlang, rust-lang, io"><title>rustix::io - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../rustix/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../rustix/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Module io</a></h2><div class="sidebar-elems"><section><div class="block"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></div></section></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../rustix/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Module <a href="../index.html">rustix</a>::<wbr><a class="mod" href="#">io</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/rustix/io/mod.rs.html#1-99">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>I/O operations.</p>
</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="epoll/index.html" title="rustix::io::epoll mod">epoll</a></div><div class="item-right docblock-short"><p>epoll support.</p>
</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.DupFlags.html" title="rustix::io::DupFlags struct">DupFlags</a></div><div class="item-right docblock-short"><p><code>O_*</code> constants for use with <a href="fn.dup2.html"><code>dup2</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Errno.html" title="rustix::io::Errno struct">Errno</a></div><div class="item-right docblock-short"><p>The error type for <code>rustix</code> APIs.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.EventfdFlags.html" title="rustix::io::EventfdFlags struct">EventfdFlags</a></div><div class="item-right docblock-short"><p><code>EFD_*</code> flags for use with <a href="fn.eventfd.html"><code>eventfd</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FdFlags.html" title="rustix::io::FdFlags struct">FdFlags</a></div><div class="item-right docblock-short"><p><code>FD_*</code> constants for use with <a href="fn.fcntl_getfd.html"><code>fcntl_getfd</code></a> and <a href="fn.fcntl_setfd.html"><code>fcntl_setfd</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.IoSlice.html" title="rustix::io::IoSlice struct">IoSlice</a></div><div class="item-right docblock-short"><p>A buffer type used with <code>Write::write_vectored</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.IoSliceMut.html" title="rustix::io::IoSliceMut struct">IoSliceMut</a></div><div class="item-right docblock-short"><p>A buffer type used with <code>Read::read_vectored</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.IoSliceRaw.html" title="rustix::io::IoSliceRaw struct">IoSliceRaw</a></div><div class="item-right docblock-short"><p>A buffer type used with <code>vmsplice</code>.
It is guaranteed to be ABI compatible with the iovec type on Unix platforms and WSABUF on Windows.
Unlike <code>IoSlice</code> and <code>IoSliceMut</code> it is semantically like a raw pointer,
and therefore can be shared or mutated as needed.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PipeFlags.html" title="rustix::io::PipeFlags struct">PipeFlags</a></div><div class="item-right docblock-short"><p><code>O_*</code> constants for use with <a href="fn.pipe_with.html"><code>pipe_with</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PollFd.html" title="rustix::io::PollFd struct">PollFd</a></div><div class="item-right docblock-short"><p><code>struct pollfd</code>—File descriptor and flags for use with <a href="fn.poll.html"><code>poll</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PollFlags.html" title="rustix::io::PollFlags struct">PollFlags</a></div><div class="item-right docblock-short"><p><code>POLL*</code> flags for use with <a href="fn.poll.html"><code>poll</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ReadWriteFlags.html" title="rustix::io::ReadWriteFlags struct">ReadWriteFlags</a></div><div class="item-right docblock-short"><p><code>RWF_*</code> constants for use with <a href="fn.preadv2.html"><code>preadv2</code></a> and <a href="fn.pwritev.html"><code>pwritev2</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SpliceFlags.html" title="rustix::io::SpliceFlags struct">SpliceFlags</a></div><div class="item-right docblock-short"><p><code>SPLICE_F_*</code> constants for use with [<code>splice</code>] and [<code>vmsplice</code>].</p>
</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SeekFrom.html" title="rustix::io::SeekFrom enum">SeekFrom</a></div><div class="item-right docblock-short"><p>Enumeration of possible methods to seek within an I/O object.</p>
</div></div></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.PIPE_BUF.html" title="rustix::io::PIPE_BUF constant">PIPE_BUF</a></div><div class="item-right docblock-short"><p><code>PIPE_BUF</code>—The maximum length at which writes to a pipe are atomic.</p>
</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.close.html" title="rustix::io::close fn">close</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>close(raw_fd)</code>—Closes a <code>RawFd</code> directly.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.dup.html" title="rustix::io::dup fn">dup</a></div><div class="item-right docblock-short"><p><code>dup(fd)</code>—Creates a new <code>OwnedFd</code> instance that shares the same
underlying <a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258">file description</a> as <code>fd</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.dup2.html" title="rustix::io::dup2 fn">dup2</a></div><div class="item-right docblock-short"><p><code>dup2(fd, new)</code>—Changes the <a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258">file description</a> of a file descriptor.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.dup3.html" title="rustix::io::dup3 fn">dup3</a></div><div class="item-right docblock-short"><p><code>dup3(fd, new, flags)</code>—Changes the <a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258">file description</a> of a file
descriptor, with flags.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.eventfd.html" title="rustix::io::eventfd fn">eventfd</a></div><div class="item-right docblock-short"><p><code>eventfd(initval, flags)</code>—Creates a file descriptor for event
notification.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.fcntl_dupfd_cloexec.html" title="rustix::io::fcntl_dupfd_cloexec fn">fcntl_dupfd_cloexec</a></div><div class="item-right docblock-short"><p><code>fcntl(fd, F_DUPFD_CLOEXEC)</code>—Creates a new <code>OwnedFd</code> instance, with value
at least <code>min</code>, that has <code>O_CLOEXEC</code> set and that shares the same
underlying [file description] as <code>fd</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.fcntl_getfd.html" title="rustix::io::fcntl_getfd fn">fcntl_getfd</a></div><div class="item-right docblock-short"><p><code>fcntl(fd, F_GETFD)</code>—Returns a file descriptors flags.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.fcntl_setfd.html" title="rustix::io::fcntl_setfd fn">fcntl_setfd</a></div><div class="item-right docblock-short"><p><code>fcntl(fd, F_SETFD, flags)</code>—Sets a file descriptors flags.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ioctl_blkpbszget.html" title="rustix::io::ioctl_blkpbszget fn">ioctl_blkpbszget</a></div><div class="item-right docblock-short"><p><code>ioctl(fd, BLKPBSZGET)</code>—Returns the physical block size of a block device.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ioctl_blksszget.html" title="rustix::io::ioctl_blksszget fn">ioctl_blksszget</a></div><div class="item-right docblock-short"><p><code>ioctl(fd, BLKSSZGET)</code>—Returns the logical block size of a block device.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ioctl_fionbio.html" title="rustix::io::ioctl_fionbio fn">ioctl_fionbio</a></div><div class="item-right docblock-short"><p><code>ioctl(fd, FIONBIO, &amp;value)</code>—Enables or disables non-blocking mode.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ioctl_fionread.html" title="rustix::io::ioctl_fionread fn">ioctl_fionread</a></div><div class="item-right docblock-short"><p><code>ioctl(fd, FIONREAD)</code>—Returns the number of bytes ready to be read.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ioctl_tiocexcl.html" title="rustix::io::ioctl_tiocexcl fn">ioctl_tiocexcl</a></div><div class="item-right docblock-short"><p><code>ioctl(fd, TIOCEXCL)</code>—Enables exclusive mode on a terminal.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ioctl_tiocnxcl.html" title="rustix::io::ioctl_tiocnxcl fn">ioctl_tiocnxcl</a></div><div class="item-right docblock-short"><p><code>ioctl(fd, TIOCNXCL)</code>—Disables exclusive mode on a terminal.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.pipe.html" title="rustix::io::pipe fn">pipe</a></div><div class="item-right docblock-short"><p><code>pipe()</code>—Creates a pipe.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.pipe_with.html" title="rustix::io::pipe_with fn">pipe_with</a></div><div class="item-right docblock-short"><p><code>pipe2(flags)</code>—Creates a pipe, with flags.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.poll.html" title="rustix::io::poll fn">poll</a></div><div class="item-right docblock-short"><p><code>poll(self.fds, timeout)</code></p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.pread.html" title="rustix::io::pread fn">pread</a></div><div class="item-right docblock-short"><p><code>pread(fd, buf, offset)</code>—Reads from a file at a given position.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.preadv.html" title="rustix::io::preadv fn">preadv</a></div><div class="item-right docblock-short"><p><code>preadv(fd, bufs, offset)</code>—Reads from a file at a given position into
multiple buffers.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.preadv2.html" title="rustix::io::preadv2 fn">preadv2</a></div><div class="item-right docblock-short"><p><code>preadv2(fd, bufs, offset, flags)</code>—Reads data, with several options.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.pwrite.html" title="rustix::io::pwrite fn">pwrite</a></div><div class="item-right docblock-short"><p><code>pwrite(fd, bufs)</code>—Writes to a file at a given position.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.pwritev.html" title="rustix::io::pwritev fn">pwritev</a></div><div class="item-right docblock-short"><p><code>pwritev(fd, bufs, offset)</code>—Writes to a file at a given position from
multiple buffers.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.pwritev2.html" title="rustix::io::pwritev2 fn">pwritev2</a></div><div class="item-right docblock-short"><p><code>pwritev2(fd, bufs, offset, flags)</code>—Writes data, with several options.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.raw_stderr.html" title="rustix::io::raw_stderr fn">raw_stderr</a></div><div class="item-right docblock-short"><p><code>STDERR_FILENO</code>—Standard error, raw.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.raw_stdin.html" title="rustix::io::raw_stdin fn">raw_stdin</a></div><div class="item-right docblock-short"><p><code>STDIN_FILENO</code>—Standard input, raw.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.raw_stdout.html" title="rustix::io::raw_stdout fn">raw_stdout</a></div><div class="item-right docblock-short"><p><code>STDOUT_FILENO</code>—Standard output, raw.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.read.html" title="rustix::io::read fn">read</a></div><div class="item-right docblock-short"><p><code>read(fd, buf)</code>—Reads from a stream.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.readv.html" title="rustix::io::readv fn">readv</a></div><div class="item-right docblock-short"><p><code>readv(fd, bufs)</code>—Reads from a stream into multiple buffers.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.retry_on_intr.html" title="rustix::io::retry_on_intr fn">retry_on_intr</a></div><div class="item-right docblock-short"><p>Call <code>f</code> until it either succeeds or fails other than <a href="struct.Errno.html#associatedconstant.INTR" title="Errno::INTR"><code>Errno::INTR</code></a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.splice.html" title="rustix::io::splice fn">splice</a></div><div class="item-right docblock-short"><p><code>splice(fd_in, off_in, fd_out, off_out, len, flags)</code>—Transfer data between a file and a pipe.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.stderr.html" title="rustix::io::stderr fn">stderr</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>STDERR_FILENO</code>—Standard error, borrowed.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.stdin.html" title="rustix::io::stdin fn">stdin</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>STDIN_FILENO</code>—Standard input, borrowed.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.stdout.html" title="rustix::io::stdout fn">stdout</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>STDOUT_FILENO</code>—Standard output, borrowed.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.take_stderr.html" title="rustix::io::take_stderr fn">take_stderr</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>STDERR_FILENO</code>—Standard error, owned.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.take_stdin.html" title="rustix::io::take_stdin fn">take_stdin</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>STDIN_FILENO</code>—Standard input, owned.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.take_stdout.html" title="rustix::io::take_stdout fn">take_stdout</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>STDOUT_FILENO</code>—Standard output, owned.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.vmsplice.html" title="rustix::io::vmsplice fn">vmsplice</a><a title="unsafe function" href="#"><sup></sup></a></div><div class="item-right docblock-short"><p><code>vmsplice(fd, bufs, flags)</code>—Transfer data between memory and a pipe.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.write.html" title="rustix::io::write fn">write</a></div><div class="item-right docblock-short"><p><code>write(fd, buf)</code>—Writes to a stream.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.writev.html" title="rustix::io::writev fn">writev</a></div><div class="item-right docblock-short"><p><code>writev(fd, bufs)</code>—Writes to a stream from multiple buffers.</p>
</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.Result.html" title="rustix::io::Result type">Result</a></div><div class="item-right docblock-short"><p>A specialized <a href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"><code>Result</code></a> type for <code>rustix</code> APIs.</p>
</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="rustix" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0 (a55dd71d5 2022-09-19)" ></div></body></html>