<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="API documentation for the Rust `unistd` mod in crate `nix`."><metaname="keywords"content="rust, rustlang, rust-lang, unistd"><title>nix::unistd - Rust</title><linkrel="stylesheet"type="text/css"href="../../normalize.css"><linkrel="stylesheet"type="text/css"href="../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"type="text/css"href="../../dark.css"><linkrel="stylesheet"type="text/css"href="../../light.css"id="themeStyle"><scriptsrc="../../storage.js"></script><noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="shortcut icon"href="../../favicon.ico"><styletype="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><bodyclass="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu">☰</div><ahref='../../nix/index.html'><divclass='logo-container'><imgsrc='../../rust-logo.png'alt='logo'></div></a><pclass='location'>Module unistd</p><divclass="sidebar-elems"><divclass="block items"><ul><li><ahref="#modules">Modules</a></li><li><ahref="#structs">Structs</a></li><li><ahref="#enums">Enums</a></li><li><ahref="#constants">Constants</a></li><li><ahref="#functions">Functions</a></li></ul></div><pclass='location'><ahref='../index.html'>nix</a></p><script>window.sidebarCurrent={name:'unistd',ty:'mod',relpath:'../'};</script><scriptdefersrc="../sidebar-items.js"></script></div></nav><divclass="theme-picker"><buttonid="theme-picker"aria-label="Pick another theme!"><imgsrc="../../brush.svg"width="18"alt="Pick another theme!"></button><divid="theme-choices"></div></div><scriptsrc="../../theme.js"></script><navclass="sub"><formclass="search-form js-only"><divclass="search-container"><div><selectid="crate-search"><optionvalue="All crates">All crates</option></select><inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><aid="settings-menu"href="../../settings.html"><imgsrc="../../wheel.svg"width="18"alt="Change settings"></a></div></form></nav><sectionid="main"class="content"><h1class='fqn'><spanclass='out-of-band'><spanid='render-detail'><aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass='inner'>−</span>]</a></span><aclass='srclink'href='../../src/nix/unistd.rs.html#1-2394'title='goto source code'>[src]</a></span><spanclass='in-band'>Module <ahref='../index.html'>nix</a>::<wbr><aclass="mod"href=''>unistd</a></span></h1><divclass='docblock'><p>Safe wrappers around functions found in libc "unistd.h" header</p>
<table><trclass='module-item'><td><aclass="mod"href="acct/index.html"title='nix::unistd::acct mod'>acct</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="mod"href="alarm/index.html"title='nix::unistd::alarm mod'>alarm</a></td><tdclass='docblock-short'><p>Alarm signal scheduling.</p>
<table><trclass='module-item'><td><aclass="struct"href="struct.AccessFlags.html"title='nix::unistd::AccessFlags struct'>AccessFlags</a></td><tdclass='docblock-short'><p>Options for access()</p>
<table><trclass='module-item'><td><aclass="enum"href="enum.FchownatFlags.html"title='nix::unistd::FchownatFlags enum'>FchownatFlags</a></td><tdclass='docblock-short'><p>Flags for <code>fchownat</code> function.</p>
</td></tr><trclass='module-item'><td><aclass="enum"href="enum.ForkResult.html"title='nix::unistd::ForkResult enum'>ForkResult</a></td><tdclass='docblock-short'><p>Represents the successful result of calling <code>fork</code></p>
</td></tr><trclass='module-item'><td><aclass="enum"href="enum.PathconfVar.html"title='nix::unistd::PathconfVar enum'>PathconfVar</a></td><tdclass='docblock-short'><p>Variable names for <code>pathconf</code></p>
</td></tr><trclass='module-item'><td><aclass="enum"href="enum.SysconfVar.html"title='nix::unistd::SysconfVar enum'>SysconfVar</a></td><tdclass='docblock-short'><p>Variable names for <code>sysconf</code></p>
</td></tr><trclass='module-item'><td><aclass="enum"href="enum.UnlinkatFlags.html"title='nix::unistd::UnlinkatFlags enum'>UnlinkatFlags</a></td><tdclass='docblock-short'><p>Flags for <code>unlinkat</code> function.</p>
</td></tr><trclass='module-item'><td><aclass="enum"href="enum.Whence.html"title='nix::unistd::Whence enum'>Whence</a></td><tdclass='docblock-short'><p>Directive that tells <ahref="./fn.lseek.html"><code>lseek</code></a> and <ahref="./fn.lseek64.html"><code>lseek64</code></a> what the offset is relative to.</p>
<table><trclass='module-item'><td><aclass="fn"href="fn.access.html"title='nix::unistd::access fn'>access</a></td><tdclass='docblock-short'><p>Checks the file named by <code>path</code> for accessibility according to the flags given by <code>amode</code>
See <ahref="http://pubs.opengroup.org/onlinepubs/9699919799/functions/access.html">access(2)</a></p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.chdir.html"title='nix::unistd::chdir fn'>chdir</a></td><tdclass='docblock-short'><p>Change the current working directory of the calling process (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.chown.html"title='nix::unistd::chown fn'>chown</a></td><tdclass='docblock-short'><p>Change the ownership of the file at <code>path</code> to be owned by the specified
<code>owner</code> (user) and <code>group</code> (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.chroot.html"title='nix::unistd::chroot fn'>chroot</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.close.html"title='nix::unistd::close fn'>close</a></td><tdclass='docblock-short'><p>Close a raw file descriptor</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.daemon.html"title='nix::unistd::daemon fn'>daemon</a></td><tdclass='docblock-short'><spanclass="stab deprecated">Deprecated</span><p>Daemonize this process by detaching from the controlling terminal (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.dup.html"title='nix::unistd::dup fn'>dup</a></td><tdclass='docblock-short'><p>Create a copy of the specified file descriptor (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.dup2.html"title='nix::unistd::dup2 fn'>dup2</a></td><tdclass='docblock-short'><p>Create a copy of the specified file descriptor using the specified fd (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.dup3.html"title='nix::unistd::dup3 fn'>dup3</a></td><tdclass='docblock-short'><p>Create a new copy of the specified file descriptor using the specified fd
and flags (see <ahref="http://man7.org/linux/man-pages/man2/dup.2.html">dup(2)</a>).</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.execv.html"title='nix::unistd::execv fn'>execv</a></td><tdclass='docblock-short'><p>Replace the current process image with a new one (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.execve.html"title='nix::unistd::execve fn'>execve</a></td><tdclass='docblock-short'><p>Replace the current process image with a new one (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.execvp.html"title='nix::unistd::execvp fn'>execvp</a></td><tdclass='docblock-short'><p>Replace the current process image with a new one and replicate shell <code>PATH</code>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.fchdir.html"title='nix::unistd::fchdir fn'>fchdir</a></td><tdclass='docblock-short'><p>Change the current working directory of the process to the one
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.fchownat.html"title='nix::unistd::fchownat fn'>fchownat</a></td><tdclass='docblock-short'><p>Change the ownership of the file at <code>path</code> to be owned by the specified
<code>owner</code> (user) and <code>group</code>.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.fork.html"title='nix::unistd::fork fn'>fork</a></td><tdclass='docblock-short'><p>Create a new child process duplicating the parent process (<ahref="http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html">see
fork(2)</a>).</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.fpathconf.html"title='nix::unistd::fpathconf fn'>fpathconf</a></td><tdclass='docblock-short'><p>Like <code>pathconf</code>, but works with file descriptors instead of paths (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.fsync.html"title='nix::unistd::fsync fn'>fsync</a></td><tdclass='docblock-short'><p>Synchronize changes to a file</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.ftruncate.html"title='nix::unistd::ftruncate fn'>ftruncate</a></td><tdclass='docblock-short'><p>Truncate a file to a specified length</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getcwd.html"title='nix::unistd::getcwd fn'>getcwd</a></td><tdclass='docblock-short'><p>Returns the current directory as a <code>PathBuf</code></p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getegid.html"title='nix::unistd::getegid fn'>getegid</a></td><tdclass='docblock-short'><p>Get the effective group ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.geteuid.html"title='nix::unistd::geteuid fn'>geteuid</a></td><tdclass='docblock-short'><p>Get the effective user ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getgid.html"title='nix::unistd::getgid fn'>getgid</a></td><tdclass='docblock-short'><p>Get the real group ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.gethostname.html"title='nix::unistd::gethostname fn'>gethostname</a></td><tdclass='docblock-short'><p>Get the host name and store it in the provided buffer, returning a pointer
the <code>CStr</code> in that buffer on success (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getpgid.html"title='nix::unistd::getpgid fn'>getpgid</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.getpgrp.html"title='nix::unistd::getpgrp fn'>getpgrp</a></td><tdclass='docblock-short'><p>Get the group id of the calling process (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getpid.html"title='nix::unistd::getpid fn'>getpid</a></td><tdclass='docblock-short'><p>Get the pid of this process (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getppid.html"title='nix::unistd::getppid fn'>getppid</a></td><tdclass='docblock-short'><p>Get the pid of this processes' parent (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getsid.html"title='nix::unistd::getsid fn'>getsid</a></td><tdclass='docblock-short'><p>Get the process group ID of a session leader
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.getuid.html"title='nix::unistd::getuid fn'>getuid</a></td><tdclass='docblock-short'><p>Get a real user ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.isatty.html"title='nix::unistd::isatty fn'>isatty</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.lseek.html"title='nix::unistd::lseek fn'>lseek</a></td><tdclass='docblock-short'><p>Move the read/write file offset.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.mkdir.html"title='nix::unistd::mkdir fn'>mkdir</a></td><tdclass='docblock-short'><p>Creates new directory <code>path</code> with access rights <code>mode</code>. (see <ahref="http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html">mkdir(2)</a>)</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.mkfifo.html"title='nix::unistd::mkfifo fn'>mkfifo</a></td><tdclass='docblock-short'><p>Creates new fifo special file (named pipe) with path <code>path</code> and access rights <code>mode</code>.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.mkstemp.html"title='nix::unistd::mkstemp fn'>mkstemp</a></td><tdclass='docblock-short'><p>Creates a regular file which persists even after process termination</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.pathconf.html"title='nix::unistd::pathconf fn'>pathconf</a></td><tdclass='docblock-short'><p>Get path-dependent configurable system variables (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.pause.html"title='nix::unistd::pause fn'>pause</a></td><tdclass='docblock-short'><p>Suspend the thread until a signal is received.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.pipe.html"title='nix::unistd::pipe fn'>pipe</a></td><tdclass='docblock-short'><p>Create an interprocess channel.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.pipe2.html"title='nix::unistd::pipe2 fn'>pipe2</a></td><tdclass='docblock-short'><spanclass="stab deprecated">Deprecated</span><p>Like <code>pipe</code>, but allows setting certain file descriptor flags.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.read.html"title='nix::unistd::read fn'>read</a></td><tdclass='docblock-short'><p>Read from a raw file descriptor.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.setegid.html"title='nix::unistd::setegid fn'>setegid</a></td><tdclass='docblock-short'><p>Set the effective group ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.seteuid.html"title='nix::unistd::seteuid fn'>seteuid</a></td><tdclass='docblock-short'><p>Set the effective user ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.setgid.html"title='nix::unistd::setgid fn'>setgid</a></td><tdclass='docblock-short'><p>Set the group ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.sethostname.html"title='nix::unistd::sethostname fn'>sethostname</a></td><tdclass='docblock-short'><p>Set the system host name (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.setpgid.html"title='nix::unistd::setpgid fn'>setpgid</a></td><tdclass='docblock-short'><p>Set a process group ID (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.setsid.html"title='nix::unistd::setsid fn'>setsid</a></td><tdclass='docblock-short'><p>Create new session and set process group id (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.setuid.html"title='nix::unistd::setuid fn'>setuid</a></td><tdclass='docblock-short'><p>Set the user ID</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.sleep.html"title='nix::unistd::sleep fn'>sleep</a></td><tdclass='docblock-short'><p>Suspend execution for an interval of time</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.symlinkat.html"title='nix::unistd::symlinkat fn'>symlinkat</a></td><tdclass='docblock-short'><p>Creates a symbolic link at <code>path2</code> which points to <code>path1</code>.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.sysconf.html"title='nix::unistd::sysconf fn'>sysconf</a></td><tdclass='docblock-short'><p>Get configurable system variables (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.tcgetpgrp.html"title='nix::unistd::tcgetpgrp fn'>tcgetpgrp</a></td><tdclass='docblock-short'><p>Get the terminal foreground process group (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.tcsetpgrp.html"title='nix::unistd::tcsetpgrp fn'>tcsetpgrp</a></td><tdclass='docblock-short'><p>Set the terminal foreground process group (see
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.truncate.html"title='nix::unistd::truncate fn'>truncate</a></td><tdclass='docblock-short'><p>Truncate a file to a specified length</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.unlink.html"title='nix::unistd::unlink fn'>unlink</a></td><tdclass='docblock-short'><p>Remove a directory entry</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.unlinkat.html"title='nix::unistd::unlinkat fn'>unlinkat</a></td><tdclass='docblock-short'><p>Remove a directory entry</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.write.html"title='nix::unistd::write fn'>write</a></td><tdclass='docblock-short'><p>Write to a raw file descriptor.</p>
</td></tr></table></section><sectionid="search"class="content hidden"></section><sectionclass="footer"></section><asideid="help"class="hidden"><div><h1class="hidden">Help</h1><divclass="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd>↑</kbd></dt><dd>Move up in search results</dd><dt><kbd>↓</kbd></dt><dd>Move down in search results</dd><dt><kbd>↹</kbd></dt><dd>Switch tab</dd><dt><kbd>⏎</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><divclass="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath="../../";window.currentCrate="nix";</script><scriptsrc="../../aliases.js"></script><scriptsrc="../../main.js"></script><scriptdefersrc="../../search-index.js"></script></body></html>