Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 4209

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>System.Posix.IO.ByteString</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_System-Posix-IO-ByteString.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">unix-2.5.1.1: POSIX functionality</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (requires POSIX)</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">System.Posix.IO.ByteString</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Input / Output
</a><ul><li><a href="#g:2">Standard file descriptors
</a></li><li><a href="#g:3">Opening and closing files
</a></li><li><a href="#g:4">Reading/writing data
</a></li><li><a href="#g:5">Seeking
</a></li><li><a href="#g:6">File options
</a></li><li><a href="#g:7">Locking
</a></li><li><a href="#g:8">Pipes
</a></li><li><a href="#g:9">Duplicating file descriptors
</a></li><li><a href="#g:10">Converting file descriptors to/from Handles
</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>POSIX IO support.  These types and functions correspond to the unix
 functions open(2), close(2), etc.  For more portable functions
 which are more like fopen(3) and friends from stdio.h, see
 <a href="../base-4.5.1.0/System-IO.html">System.IO</a>.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:stdInput">stdInput</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:stdOutput">stdOutput</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:stdError">stdError</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:OpenMode">OpenMode</a> <ul class="subs"><li>= <a href="#v:ReadOnly">ReadOnly</a>  </li><li>| <a href="#v:WriteOnly">WriteOnly</a>  </li><li>| <a href="#v:ReadWrite">ReadWrite</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:OpenFileFlags">OpenFileFlags</a>  = <a href="#v:OpenFileFlags">OpenFileFlags</a> {<ul class="subs"><li><a href="#v:append">append</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:exclusive">exclusive</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:noctty">noctty</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:nonBlock">nonBlock</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:trunc">trunc</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:defaultFileFlags">defaultFileFlags</a> :: <a href="System-Posix-IO-ByteString.html#t:OpenFileFlags">OpenFileFlags</a></li><li class="src short"><a href="#v:openFd">openFd</a> :: <a href="System-Posix-ByteString-FilePath.html#t:RawFilePath">RawFilePath</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:OpenMode">OpenMode</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileMode">FileMode</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:OpenFileFlags">OpenFileFlags</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:createFile">createFile</a> :: <a href="System-Posix-ByteString-FilePath.html#t:RawFilePath">RawFilePath</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileMode">FileMode</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:closeFd">closeFd</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:fdRead">fdRead</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a>)</li><li class="src short"><a href="#v:fdWrite">fdWrite</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></li><li class="src short"><a href="#v:fdReadBuf">fdReadBuf</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></li><li class="src short"><a href="#v:fdWriteBuf">fdWriteBuf</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></li><li class="src short"><a href="#v:fdSeek">fdSeek</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:FdOption">FdOption</a> <ul class="subs"><li>= <a href="#v:AppendOnWrite">AppendOnWrite</a>  </li><li>| <a href="#v:CloseOnExec">CloseOnExec</a>  </li><li>| <a href="#v:NonBlockingRead">NonBlockingRead</a>  </li><li>| <a href="#v:SynchronousWrites">SynchronousWrites</a>  </li></ul></li><li class="src short"><a href="#v:queryFdOption">queryFdOption</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FdOption">FdOption</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:setFdOption">setFdOption</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FdOption">FdOption</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><span class="keyword">type</span> <a href="#t:FileLock">FileLock</a> = (<a href="System-Posix-IO-ByteString.html#t:LockRequest">LockRequest</a>, <a href="../base-4.5.1.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:LockRequest">LockRequest</a> <ul class="subs"><li>= <a href="#v:ReadLock">ReadLock</a>  </li><li>| <a href="#v:WriteLock">WriteLock</a>  </li><li>| <a href="#v:Unlock">Unlock</a>  </li></ul></li><li class="src short"><a href="#v:getLock">getLock</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="../base-4.5.1.0/System-Posix-Types.html#t:ProcessID">ProcessID</a>, <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a>))</li><li class="src short"><a href="#v:setLock">setLock</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:waitToSetLock">waitToSetLock</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:createPipe">createPipe</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a>)</li><li class="src short"><a href="#v:dup">dup</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:dupTo">dupTo</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:handleToFd">handleToFd</a> :: <a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></li><li class="src short"><a href="#v:fdToHandle">fdToHandle</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a></li></ul></div><div id="interface"><h1 id="g:1">Input / Output
</h1><h2 id="g:2">Standard file descriptors
</h2><div class="top"><p class="src"><a name="v:stdInput" class="def">stdInput</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p></div><div class="top"><p class="src"><a name="v:stdOutput" class="def">stdOutput</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p></div><div class="top"><p class="src"><a name="v:stdError" class="def">stdError</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p></div><h2 id="g:3">Opening and closing files
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:OpenMode" class="def">OpenMode</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ReadOnly" class="def">ReadOnly</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WriteOnly" class="def">WriteOnly</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ReadWrite" class="def">ReadWrite</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:OpenFileFlags" class="def">OpenFileFlags</a>  </p><div class="doc"><p>Correspond to some of the int flags from C's fcntl.h.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:OpenFileFlags" class="def">OpenFileFlags</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:append" class="def">append</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>O_APPEND
</p></dd><dt class="src"><a name="v:exclusive" class="def">exclusive</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>O_EXCL
</p></dd><dt class="src"><a name="v:noctty" class="def">noctty</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>O_NOCTTY
</p></dd><dt class="src"><a name="v:nonBlock" class="def">nonBlock</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>O_NONBLOCK
</p></dd><dt class="src"><a name="v:trunc" class="def">trunc</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>O_TRUNC
</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:defaultFileFlags" class="def">defaultFileFlags</a> :: <a href="System-Posix-IO-ByteString.html#t:OpenFileFlags">OpenFileFlags</a></p><div class="doc"><p>Default values for the <code><a href="System-Posix-IO-ByteString.html#t:OpenFileFlags">OpenFileFlags</a></code> type. False for each of
 append, exclusive, noctty, nonBlock, and trunc.
</p></div></div><div class="top"><p class="src"><a name="v:openFd" class="def">openFd</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="System-Posix-ByteString-FilePath.html#t:RawFilePath">RawFilePath</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="System-Posix-IO-ByteString.html#t:OpenMode">OpenMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileMode">FileMode</a></td><td class="doc"><p>Just x =&gt; creates the file with the given modes, Nothing =&gt; the file must exist.
</p></td></tr><tr><td class="src">-&gt; <a href="System-Posix-IO-ByteString.html#t:OpenFileFlags">OpenFileFlags</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Open and optionally create this file.  See <code><a href="System-Posix.html#t:Files">Files</a></code>
 for information on how to use the <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:FileMode">FileMode</a></code> type.
</p></div></div><div class="top"><p class="src"><a name="v:createFile" class="def">createFile</a> :: <a href="System-Posix-ByteString-FilePath.html#t:RawFilePath">RawFilePath</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileMode">FileMode</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p><div class="doc"><p>Create and open this file in WriteOnly mode.  A special case of
 <code><a href="System-Posix-IO-ByteString.html#v:openFd">openFd</a></code>.  See <code><a href="System-Posix.html#t:Files">Files</a></code> for information on how to use
 the <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:FileMode">FileMode</a></code> type.
</p></div></div><div class="top"><p class="src"><a name="v:closeFd" class="def">closeFd</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>Close this file descriptor.  May throw an exception if this is an
 invalid descriptor.
</p></div></div><h2 id="g:4">Reading/writing data
</h2><div class="doc"><p>Programmers using the <code><a href="System-Posix-IO-ByteString.html#v:fdRead">fdRead</a></code> and <code><a href="System-Posix-IO-ByteString.html#v:fdWrite">fdWrite</a></code> API should be aware that
 EAGAIN exceptions may occur for non-blocking IO!
</p></div><div class="top"><p class="src"><a name="v:fdRead" class="def">fdRead</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></td><td class="doc"><p>How many bytes to read
</p></td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a>)</td><td class="doc"><p>The bytes read, how many bytes were read.
</p></td></tr></table></div><div class="doc"><p>Read data from an <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code> and convert it to a <code><a href="../base-4.5.1.0/Data-String.html#t:String">String</a></code> using the locale encoding.
 Throws an exception if this is an invalid descriptor, or EOF has been
 reached.
</p></div></div><div class="top"><p class="src"><a name="v:fdWrite" class="def">fdWrite</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></p><div class="doc"><p>Write a <code><a href="../base-4.5.1.0/Data-String.html#t:String">String</a></code> to an <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code> using the locale encoding.
</p></div></div><div class="top"><p class="src"><a name="v:fdReadBuf" class="def">fdReadBuf</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a></td><td class="doc"><p>Memory in which to put the data
</p></td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></td><td class="doc"><p>Maximum number of bytes to read
</p></td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></td><td class="doc"><p>Number of bytes read (zero for EOF)
</p></td></tr></table></div><div class="doc"><p>Read data from an <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code> into memory.  This is exactly equivalent
 to the POSIX <code>read</code> function.
</p></div></div><div class="top"><p class="src"><a name="v:fdWriteBuf" class="def">fdWriteBuf</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a></td><td class="doc"><p>Memory containing the data to write
</p></td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></td><td class="doc"><p>Maximum number of bytes to write
</p></td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:ByteCount">ByteCount</a></td><td class="doc"><p>Number of bytes written
</p></td></tr></table></div><div class="doc"><p>Write data from memory to an <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code>.  This is exactly equivalent
 to the POSIX <code>write</code> function.
</p></div></div><h2 id="g:5">Seeking
</h2><div class="top"><p class="src"><a name="v:fdSeek" class="def">fdSeek</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a></p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><h2 id="g:6">File options
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FdOption" class="def">FdOption</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AppendOnWrite" class="def">AppendOnWrite</a></td><td class="doc"><p>O_APPEND
</p></td></tr><tr><td class="src"><a name="v:CloseOnExec" class="def">CloseOnExec</a></td><td class="doc"><p>FD_CLOEXEC
</p></td></tr><tr><td class="src"><a name="v:NonBlockingRead" class="def">NonBlockingRead</a></td><td class="doc"><p>O_NONBLOCK
</p></td></tr><tr><td class="src"><a name="v:SynchronousWrites" class="def">SynchronousWrites</a></td><td class="doc"><p>O_SYNC
</p></td></tr></table></div></div><div class="top"><p class="src"><a name="v:queryFdOption" class="def">queryFdOption</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FdOption">FdOption</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><div class="top"><p class="src"><a name="v:setFdOption" class="def">setFdOption</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FdOption">FdOption</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><h2 id="g:7">Locking
</h2><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:FileLock" class="def">FileLock</a> = (<a href="System-Posix-IO-ByteString.html#t:LockRequest">LockRequest</a>, <a href="../base-4.5.1.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:FileOffset">FileOffset</a>)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:LockRequest" class="def">LockRequest</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ReadLock" class="def">ReadLock</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WriteLock" class="def">WriteLock</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Unlock" class="def">Unlock</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:getLock" class="def">getLock</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="../base-4.5.1.0/System-Posix-Types.html#t:ProcessID">ProcessID</a>, <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a>))</p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><div class="top"><p class="src"><a name="v:setLock" class="def">setLock</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><div class="top"><p class="src"><a name="v:waitToSetLock" class="def">waitToSetLock</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="System-Posix-IO-ByteString.html#t:FileLock">FileLock</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><h2 id="g:8">Pipes
</h2><div class="top"><p class="src"><a name="v:createPipe" class="def">createPipe</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a>, <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a>)</p><div class="doc"><p>The <code><a href="System-Posix-IO-ByteString.html#v:createPipe">createPipe</a></code> function creates a pair of connected file
 descriptors. The first component is the fd to read from, the second
 is the write end.  Although pipes may be bidirectional, this
 behaviour is not portable and programmers should use two separate
 pipes for this purpose.  May throw an exception if this is an
 invalid descriptor.
</p></div></div><h2 id="g:9">Duplicating file descriptors
</h2><div class="top"><p class="src"><a name="v:dup" class="def">dup</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><div class="top"><p class="src"><a name="v:dupTo" class="def">dupTo</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p><div class="doc"><p>May throw an exception if this is an invalid descriptor.
</p></div></div><h2 id="g:10">Converting file descriptors to/from Handles
</h2><div class="top"><p class="src"><a name="v:handleToFd" class="def">handleToFd</a> :: <a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></p><div class="doc"><p>Extracts the <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code> from a <code><a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a></code>.  This function has the side effect
 of closing the <code><a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a></code> and flushing its write buffer, if necessary.
</p></div></div><div class="top"><p class="src"><a name="v:fdToHandle" class="def">fdToHandle</a> :: <a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a></p><div class="doc"><p>Converts an <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code> into a <code><a href="../base-4.5.1.0/GHC-IO-Handle.html#t:Handle">Handle</a></code> that can be used with the
 standard Haskell IO library (see <a href="../base-4.5.1.0/System-IO.html">System.IO</a>).  
</p><p>GHC only: this function has the side effect of putting the <code><a href="../base-4.5.1.0/System-Posix-Types.html#t:Fd">Fd</a></code>
 into non-blocking mode (<code>O_NONBLOCK</code>) due to the way the standard
 IO library implements multithreaded I/O.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>