Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 1358

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- ssh_sftp</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth ||
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){
                if (obj.addEventListener){
                obj.addEventListener(evType, fn, true);
                return true;
              } else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
              } else {
                return false;
              }
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/ssh-2.1.2.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>SSH</strong><br><strong>Reference Manual</strong><br><small>Version 2.1.2</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p>
<ul class="flipMenu">
<li id="no" title="ssh " expanded="false">ssh<ul>
<li><a href="ssh.html">
                  Top of manual page
                </a></li>
<li title="close-1"><a href="ssh.html#close-1">close/1</a></li>
<li title="connect-3"><a href="ssh.html#connect-3">connect/3</a></li>
<li title="connect-4"><a href="ssh.html#connect-4">connect/4</a></li>
<li title="connection_info-2"><a href="ssh.html#connection_info-2">connection_info/2</a></li>
<li title="daemon-1"><a href="ssh.html#daemon-1">daemon/1</a></li>
<li title="daemon-2"><a href="ssh.html#daemon-2">daemon/2</a></li>
<li title="daemon-3"><a href="ssh.html#daemon-3">daemon/3</a></li>
<li title="shell-1"><a href="ssh.html#shell-1">shell/1</a></li>
<li title="shell-2"><a href="ssh.html#shell-2">shell/2</a></li>
<li title="shell-3"><a href="ssh.html#shell-3">shell/3</a></li>
<li title="start-0"><a href="ssh.html#start-0">start/0</a></li>
<li title="start-1"><a href="ssh.html#start-1">start/1</a></li>
<li title="stop-0"><a href="ssh.html#stop-0">stop/0</a></li>
<li title="stop_daemon-1"><a href="ssh.html#stop_daemon-1">stop_daemon/1</a></li>
<li title="stop_daemon-2"><a href="ssh.html#stop_daemon-2">stop_daemon/2</a></li>
<li title="stop_listener-1"><a href="ssh.html#stop_listener-1">stop_listener/1</a></li>
<li title="stop_listener-2"><a href="ssh.html#stop_listener-2">stop_listener/2</a></li>
</ul>
</li>
<li id="no" title="ssh_channel " expanded="false">ssh_channel<ul>
<li><a href="ssh_channel.html">
                  Top of manual page
                </a></li>
<li title="call-2"><a href="ssh_channel.html#call-2">call/2</a></li>
<li title="call-3"><a href="ssh_channel.html#call-3">call/3</a></li>
<li title="cast-2"><a href="ssh_channel.html#cast-2">cast/2</a></li>
<li title="enter_loop-1"><a href="ssh_channel.html#enter_loop-1">enter_loop/1</a></li>
<li title="init-1"><a href="ssh_channel.html#init-1">init/1</a></li>
<li title="reply-2"><a href="ssh_channel.html#reply-2">reply/2</a></li>
<li title="start-4"><a href="ssh_channel.html#start-4">start/4</a></li>
<li title="start_link-4"><a href="ssh_channel.html#start_link-4">start_link/4</a></li>
<li title="CallbackModule:code_change-3"><a href="ssh_channel.html#CallbackModule:code_change-3">CallbackModule:code_change/3</a></li>
<li title="CallbackModule:init-1"><a href="ssh_channel.html#CallbackModule:init-1">CallbackModule:init/1</a></li>
<li title="CallbackModule:handle_call-3"><a href="ssh_channel.html#CallbackModule:handle_call-3">CallbackModule:handle_call/3</a></li>
<li title="CallbackModule:handle_cast-2"><a href="ssh_channel.html#CallbackModule:handle_cast-2">CallbackModule:handle_cast/2</a></li>
<li title="CallbackModule:handle_msg-2"><a href="ssh_channel.html#CallbackModule:handle_msg-2">CallbackModule:handle_msg/2</a></li>
<li title="CallbackModule:handle_ssh_msg-2"><a href="ssh_channel.html#CallbackModule:handle_ssh_msg-2">CallbackModule:handle_ssh_msg/2</a></li>
<li title="CallbackModule:terminate-2"><a href="ssh_channel.html#CallbackModule:terminate-2">CallbackModule:terminate/2</a></li>
</ul>
</li>
<li id="no" title="ssh_connection " expanded="false">ssh_connection<ul>
<li><a href="ssh_connection.html">
                  Top of manual page
                </a></li>
<li title="adjust_window-3"><a href="ssh_connection.html#adjust_window-3">adjust_window/3</a></li>
<li title="close-2"><a href="ssh_connection.html#close-2">close/2</a></li>
<li title="exec-4"><a href="ssh_connection.html#exec-4">exec/4</a></li>
<li title="exit_status-3"><a href="ssh_connection.html#exit_status-3">exit_status/3</a></li>
<li title="reply_request-4"><a href="ssh_connection.html#reply_request-4">reply_request/4</a></li>
<li title="send-3"><a href="ssh_connection.html#send-3">send/3</a></li>
<li title="send-4"><a href="ssh_connection.html#send-4">send/4</a></li>
<li title="send-4"><a href="ssh_connection.html#send-4">send/4</a></li>
<li title="send-5"><a href="ssh_connection.html#send-5">send/5</a></li>
<li title="send_eof-2"><a href="ssh_connection.html#send_eof-2">send_eof/2</a></li>
<li title="session_channel-2"><a href="ssh_connection.html#session_channel-2">session_channel/2</a></li>
<li title="session_channel-4"><a href="ssh_connection.html#session_channel-4">session_channel/4</a></li>
<li title="setenv-5"><a href="ssh_connection.html#setenv-5">setenv/5</a></li>
<li title="shell-2"><a href="ssh_connection.html#shell-2">shell/2</a></li>
<li title="subsystem-4"><a href="ssh_connection.html#subsystem-4">subsystem/4</a></li>
</ul>
</li>
<li id="loadscrollpos" title="ssh_sftp " expanded="true">ssh_sftp<ul>
<li><a href="ssh_sftp.html">
                  Top of manual page
                </a></li>
<li title="start_channel-1"><a href="ssh_sftp.html#start_channel-1">start_channel/1</a></li>
<li title="start_channel-2"><a href="ssh_sftp.html#start_channel-2">start_channel/2</a></li>
<li title="start_channel-2"><a href="ssh_sftp.html#start_channel-2">start_channel/2</a></li>
<li title="start_channel-3"><a href="ssh_sftp.html#start_channel-3">start_channel/3</a></li>
<li title="stop_channel-1"><a href="ssh_sftp.html#stop_channel-1">stop_channel/1</a></li>
<li title="read_file-2"><a href="ssh_sftp.html#read_file-2">read_file/2</a></li>
<li title="read_file-3"><a href="ssh_sftp.html#read_file-3">read_file/3</a></li>
<li title="write_file-3"><a href="ssh_sftp.html#write_file-3">write_file/3</a></li>
<li title="write_file-4"><a href="ssh_sftp.html#write_file-4">write_file/4</a></li>
<li title="list_dir-2"><a href="ssh_sftp.html#list_dir-2">list_dir/2</a></li>
<li title="list_dir-3"><a href="ssh_sftp.html#list_dir-3">list_dir/3</a></li>
<li title="open-3"><a href="ssh_sftp.html#open-3">open/3</a></li>
<li title="open-4"><a href="ssh_sftp.html#open-4">open/4</a></li>
<li title="opendir-2"><a href="ssh_sftp.html#opendir-2">opendir/2</a></li>
<li title="opendir-3"><a href="ssh_sftp.html#opendir-3">opendir/3</a></li>
<li title="close-2"><a href="ssh_sftp.html#close-2">close/2</a></li>
<li title="close-3"><a href="ssh_sftp.html#close-3">close/3</a></li>
<li title="read-3"><a href="ssh_sftp.html#read-3">read/3</a></li>
<li title="read-4"><a href="ssh_sftp.html#read-4">read/4</a></li>
<li title="pread-4"><a href="ssh_sftp.html#pread-4">pread/4</a></li>
<li title="pread-5"><a href="ssh_sftp.html#pread-5">pread/5</a></li>
<li title="aread-3"><a href="ssh_sftp.html#aread-3">aread/3</a></li>
<li title="apread-4"><a href="ssh_sftp.html#apread-4">apread/4</a></li>
<li title="write-3"><a href="ssh_sftp.html#write-3">write/3</a></li>
<li title="write-4"><a href="ssh_sftp.html#write-4">write/4</a></li>
<li title="pwrite-4"><a href="ssh_sftp.html#pwrite-4">pwrite/4</a></li>
<li title="pwrite-5"><a href="ssh_sftp.html#pwrite-5">pwrite/5</a></li>
<li title="awrite-3"><a href="ssh_sftp.html#awrite-3">awrite/3</a></li>
<li title="apwrite-4"><a href="ssh_sftp.html#apwrite-4">apwrite/4</a></li>
<li title="position-3"><a href="ssh_sftp.html#position-3">position/3</a></li>
<li title="position-4"><a href="ssh_sftp.html#position-4">position/4</a></li>
<li title="read_file_info-2"><a href="ssh_sftp.html#read_file_info-2">read_file_info/2</a></li>
<li title="read_file_info-3"><a href="ssh_sftp.html#read_file_info-3">read_file_info/3</a></li>
<li title="read_link_info-2"><a href="ssh_sftp.html#read_link_info-2">read_link_info/2</a></li>
<li title="read_link_info-3"><a href="ssh_sftp.html#read_link_info-3">read_link_info/3</a></li>
<li title="write_file_info-3"><a href="ssh_sftp.html#write_file_info-3">write_file_info/3</a></li>
<li title="write_file_info-4"><a href="ssh_sftp.html#write_file_info-4">write_file_info/4</a></li>
<li title="read_link-2"><a href="ssh_sftp.html#read_link-2">read_link/2</a></li>
<li title="read_link-3"><a href="ssh_sftp.html#read_link-3">read_link/3</a></li>
<li title="make_symlink-3"><a href="ssh_sftp.html#make_symlink-3">make_symlink/3</a></li>
<li title="make_symlink-4"><a href="ssh_sftp.html#make_symlink-4">make_symlink/4</a></li>
<li title="rename-3"><a href="ssh_sftp.html#rename-3">rename/3</a></li>
<li title="rename-4"><a href="ssh_sftp.html#rename-4">rename/4</a></li>
<li title="delete-2"><a href="ssh_sftp.html#delete-2">delete/2</a></li>
<li title="delete-3"><a href="ssh_sftp.html#delete-3">delete/3</a></li>
<li title="make_dir-2"><a href="ssh_sftp.html#make_dir-2">make_dir/2</a></li>
<li title="make_dir-3"><a href="ssh_sftp.html#make_dir-3">make_dir/3</a></li>
<li title="del_dir-2"><a href="ssh_sftp.html#del_dir-2">del_dir/2</a></li>
<li title="del_dir-3"><a href="ssh_sftp.html#del_dir-3">del_dir/3</a></li>
</ul>
</li>
<li id="no" title="ssh_sftpd " expanded="false">ssh_sftpd<ul>
<li><a href="ssh_sftpd.html">
                  Top of manual page
                </a></li>
<li title="subsystem_spec-1"><a href="ssh_sftpd.html#subsystem_spec-1">subsystem_spec/1</a></li>
</ul>
</li>
</ul>
</div></div>
<div id="content">
<div class="innertube">
<!-- refpage --><center><h1>ssh_sftp</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">ssh_sftp</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">SFTP client.</div>
  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <p>This module implements an SFTP (SSH FTP) client. SFTP is a
      secure, encrypted file transfer service available for
      SSH.</p>
  </p></div>
  
 <h3><a name="id66623">COMMON DATA TYPES </a></h3>
<div class="REFBODY">
    
    <p>Type definitions that are used more than once in this module
    and/or abstractions to indicate the intended use of the data type:
    </p>
    <p><span class="code">ssh_connection_ref() - opaque to the user
    returned by ssh:connect/3</span></p>
    <p><span class="code">timeout() =  infinity | integer() - in milliseconds.</span></p>    
   </div>

 <h3><a name="id66646">TIMEOUTS </a></h3>
<div class="REFBODY">
    
    <p>If the request functions for the sftp channel return {error, timeout}
    it does not mean that the request did not reach the server and was
    not performed, it only means that we did not receive an answer from the
    server within the time that was expected.</p>
   </div>

  <h3>EXPORTS</h3>
    <p><a name="start_channel-1"><span class="bold_code">start_channel(ConnectionRef) -&gt; </span></a><br><a name="start_channel-2"><span class="bold_code">start_channel(ConnectionRef, Options) -&gt; </span></a><br><a name="start_channel-2"><span class="bold_code">start_channel(Host, Options) -&gt;</span></a><br><a name="start_channel-3"><span class="bold_code">start_channel(Host, Port, Options) -&gt; {ok, Pid} | {ok, Pid, ConnectionRef} |
      {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Host = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ConnectionRef = ssh_connection_ref()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Port = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Options = [{Option, Value}]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
	<p>If not provided, setups a ssh connection in this case a
	connection reference will be returned too. A ssh channel
	process is started to handle the communication with the SFTP
	server, the returned pid for this process should be used as
	input to all other API functions in this module.</p>

	<p>Options are:</p>
	<dl>
          <dt><strong><span class="code">{timeout, timeout()}</span></strong></dt>
	  <dd>
	    <p>The timeout is passed to the ssh_channel start function,
	    and defaults to infinity.</p>
	  </dd>
	</dl>
	<p>All other options are  directly passed to
	<span class="bold_code"><a href="ssh.html">ssh:connect/3</a></span> or ignored if a
	connection is already provided. </p>
      </p></div>

    <p><a name="stop_channel-1"><span class="bold_code">stop_channel(ChannelPid) -&gt; ok</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
	<p>Stops a sftp channel. If the ssh connection should be closed
	call <span class="bold_code"><a href="ssh.html">ssh:close/1</a></span>.</p>
      </p></div>
  
    <p><a name="read_file-2"><span class="bold_code">read_file(ChannelPid, File) -&gt; </span></a><br><a name="read_file-3"><span class="bold_code">read_file(ChannelPid, File, Timeout) -&gt; {ok, Data} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
	<div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">File = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Data = binary()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Reads a file from the server, and returns the data in a binary,
          like <span class="code">file:read_file/1</span>.</p>
      </p></div>
    <p><a name="write_file-3"><span class="bold_code">write_file(ChannelPid, File, Iolist) -&gt; </span></a><br><a name="write_file-4"><span class="bold_code">write_file(ChannelPid, File, Iolist, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">File = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Iolist = iolist()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Writes a file to the server, like <span class="code">file:write_file/2</span>.
          The file is created if it's not there.</p>
      </p></div>
    <p><a name="list_dir-2"><span class="bold_code">list_dir(ChannelPid, Path) -&gt; </span></a><br><a name="list_dir-3"><span class="bold_code">list_dir(ChannelPid, Path, Timeout) -&gt; {ok, Filenames} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Path = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Filenames = [Filename]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Filename = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Lists the given directory on the server, returning the
          filenames as a list of strings.</p>
      </p></div>
    <p><a name="open-3"><span class="bold_code">open(ChannelPid, File, Mode) -&gt; </span></a><br><a name="open-4"><span class="bold_code">open(ChannelPid, File, Mode, Timeout) -&gt; {ok, Handle} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">File = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Mode = [Modeflag]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Modeflag = read | write | creat | trunc | append | binary</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Opens a file on the server, and returns a handle that
          is used for reading or writing.</p>
      </p></div>
    <p><a name="opendir-2"><span class="bold_code">opendir(ChannelPid, Path) -&gt; </span></a><br><a name="opendir-3"><span class="bold_code">opendir(ChannelPid, Path, Timeout) -&gt; {ok, Handle} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Path = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Opens a handle to a directory on the server, the handle
          is used for reading directory contents.</p>
      </p></div>
    <p><a name="close-2"><span class="bold_code">close(ChannelPid, Handle) -&gt; </span></a><br><a name="close-3"><span class="bold_code">close(ChannelPid, Handle, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Closes a handle to an open file or directory on the server.</p>
      </p></div>
    <p><a name="read-3"><span class="bold_code">read(ChannelPid, Handle, Len) -&gt; </span></a><br><a name="read-4"><span class="bold_code">read(ChannelPid, Handle, Len, Timeout) -&gt; {ok, Data} | eof | {error, Error}</span></a><br><a name="pread-4"><span class="bold_code">pread(ChannelPid, Handle, Position, Len) -&gt; </span></a><br><a name="pread-5"><span class="bold_code">pread(ChannelPid, Handle, Position, Len, Timeout) -&gt; {ok, Data} | eof | {error, Error}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Position = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Len = integer()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Data = string() | binary()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Reads <span class="code">Len</span> bytes from the file referenced by
          <span class="code">Handle</span>. Returns <span class="code">{ok, Data}</span>, or <span class="code">eof</span>, or
          <span class="code">{error, Reason}</span>. If the file is opened with <span class="code">binary</span>,
          <span class="code">Data</span> is a binary, otherwise it is a string.</p>
        <p>If the file is read past eof, only the remaining bytes
          will be read and returned. If no bytes are read, <span class="code">eof</span>
          is returned.</p>
        <p>The <span class="code">pread</span> function reads from a specified position,
          combining the <span class="code">position</span> and <span class="code">read</span> functions.</p>
      </p></div>
    <p><a name="aread-3"><span class="bold_code">aread(ChannelPid, Handle, Len) -&gt; {async, N} | {error, Error}</span></a><br><a name="apread-4"><span class="bold_code">apread(ChannelPid, Handle, Position, Len) -&gt; {async, N} | {error, Error}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Position = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Len = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">N = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Reads from an open file, without waiting for the result. If the
          handle is valid, the function returns <span class="code">{async, N}</span>, where N
          is a term guaranteed to be unique between calls of <span class="code">aread</span>. 
          The actual data is sent as a message to the calling process. This
          message has the form <span class="code">{async_reply, N, Result}</span>, where
          <span class="code">Result</span> is the result from the read, either <span class="code">{ok, Data}</span>,
          or <span class="code">eof</span>, or <span class="code">{error, Error}</span>.</p>
        <p>The <span class="code">apread</span> function reads from a specified position,
          combining the <span class="code">position</span> and <span class="code">aread</span> functions.</p>
      </p></div>
    <p><a name="write-3"><span class="bold_code">write(ChannelPid, Handle, Data) -&gt;</span></a><br><a name="write-4"><span class="bold_code">write(ChannelPid, Handle, Data, Timeout) -&gt; ok | {error, Error}</span></a><br><a name="pwrite-4"><span class="bold_code">pwrite(ChannelPid, Handle, Position, Data) -&gt; ok </span></a><br><a name="pwrite-5"><span class="bold_code">pwrite(ChannelPid, Handle, Position, Data, Timeout) -&gt; ok | {error, Error}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Position = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Data = iolist()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Write <span class="code">data</span> to the file referenced by <span class="code">Handle</span>.
          The file should be opened with <span class="code">write</span> or <span class="code">append</span>
          flag. Returns <span class="code">ok</span> if successful and <span class="code">{error, Reason}</span>
          otherwise.</p>
        <p>Typical error reasons are:</p>
        <dl>
          <dt><strong><span class="code">ebadf</span></strong></dt>
          <dd>
            <p>The file is not opened for writing.</p>
          </dd>
          <dt><strong><span class="code">enospc</span></strong></dt>
          <dd>
            <p>There is a no space left on the device.</p>
          </dd>
        </dl>
      </p></div>
    <p><a name="awrite-3"><span class="bold_code">awrite(ChannelPid, Handle, Data) -&gt; ok | {error, Reason} </span></a><br><a name="apwrite-4"><span class="bold_code">apwrite(ChannelPid, Handle, Position, Data) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Position = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Len = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Data = binary()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Writes to an open file, without waiting for the result. If the
          handle is valid, the function returns <span class="code">{async, N}</span>, where N
          is a term guaranteed to be unique between calls of
          <span class="code">awrite</span>. The result of the <span class="code">write</span> operation is sent
          as a message to the calling process. This message has the form
          <span class="code">{async_reply, N, Result}</span>, where <span class="code">Result</span> is the result
          from the write, either <span class="code">ok</span>, or <span class="code">{error, Error}</span>.</p>
        <p>The <span class="code">apwrite</span> writes on a specified position, combining
          the <span class="code">position</span> and <span class="code">awrite</span> operations.</p>
      </p></div>
    <p><a name="position-3"><span class="bold_code">position(ChannelPid, Handle, Location) -&gt; </span></a><br><a name="position-4"><span class="bold_code">position(ChannelPid, Handle, Location, Timeout) -&gt; {ok, NewPosition | {error, Error}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Location = Offset | {bof, Offset} | {cur, Offset} | {eof, Offset} | bof | cur | eof</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Offset = int()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">NewPosition = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Sets the file position of the file referenced by <span class="code">Handle</span>.
          Returns <span class="code">{ok, NewPosition</span> (as an absolute offset) if
          successful, otherwise <span class="code">{error, Reason}</span>. <span class="code">Location</span> is
          one of the following:</p>
        <dl>
          <dt><strong><span class="code">Offset</span></strong></dt>
          <dd>
            <p>The same as <span class="code">{bof, Offset}</span>.</p>
          </dd>
          <dt><strong><span class="code">{bof, Offset}</span></strong></dt>
          <dd>
            <p>Absolute offset.</p>
          </dd>
          <dt><strong><span class="code">{cur, Offset}</span></strong></dt>
          <dd>
            <p>Offset from the current position.</p>
          </dd>
          <dt><strong><span class="code">{eof, Offset}</span></strong></dt>
          <dd>
            <p>Offset from the end of file.</p>
          </dd>
          <dt><strong><span class="code">bof | cur | eof</span></strong></dt>
          <dd>
            <p>The same as above with <span class="code">Offset</span> 0.</p>
          </dd>
        </dl>
      </p></div>
    <p><a name="read_file_info-2"><span class="bold_code">read_file_info(ChannelPid, Name) -&gt; </span></a><br><a name="read_file_info-3"><span class="bold_code">read_file_info(ChannelPid, Name, Timeout) -&gt; {ok, FileInfo} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FileInfo = record()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Returns a <span class="code">file_info</span> record from the file specified by
          <span class="code">Name</span> or <span class="code">Handle</span>, like <span class="code">file:read_file_info/2</span>.</p>
      </p></div>
    <p><a name="read_link_info-2"><span class="bold_code">read_link_info(ChannelPid, Name) -&gt; {ok, FileInfo} | {error, Reason}</span></a><br><a name="read_link_info-3"><span class="bold_code">read_link_info(ChannelPid, Name, Timeout) -&gt; {ok, FileInfo} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handle = term()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FileInfo = record()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Returns a <span class="code">file_info</span> record from the symbolic
          link specified by <span class="code">Name</span> or <span class="code">Handle</span>, like
          <span class="code">file:read_link_info/2</span>.</p>
      </p></div>
    <p><a name="write_file_info-3"><span class="bold_code">write_file_info(ChannelPid, Name, Info) -&gt; </span></a><br><a name="write_file_info-4"><span class="bold_code">write_file_info(ChannelPid, Name, Info, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Info = record()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Writes file information from a <span class="code">file_info</span> record to the
          file specified by <span class="code">Name</span>, like <span class="code">file:write_file_info</span>.</p>
      </p></div>
    <p><a name="read_link-2"><span class="bold_code">read_link(ChannelPid, Name) -&gt; </span></a><br><a name="read_link-3"><span class="bold_code">read_link(ChannelPid, Name, Timeout) -&gt; {ok, Target} | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Target = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Read the link target from the symbolic link specified
          by <span class="code">name</span>, like <span class="code">file:read_link/1</span>.</p>
      </p></div>
    <p><a name="make_symlink-3"><span class="bold_code">make_symlink(ChannelPid, Name, Target) -&gt; </span></a><br><a name="make_symlink-4"><span class="bold_code">make_symlink(ChannelPid, Name, Target, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Target = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Creates a symbolic link pointing to <span class="code">Target</span> with the
          name <span class="code">Name</span>, like <span class="code">file:make_symlink/2</span>.</p>
      </p></div>
    <p><a name="rename-3"><span class="bold_code">rename(ChannelPid, OldName, NewName) -&gt;  </span></a><br><a name="rename-4"><span class="bold_code">rename(ChannelPid, OldName, NewName, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">OldName = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">NewName = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Renames a file named <span class="code">OldName</span>, and gives it the name
          <span class="code">NewName</span>, like <span class="code">file:rename/2</span></p>
      </p></div>
    <p><a name="delete-2"><span class="bold_code">delete(ChannelPid, Name) -&gt; </span></a><br><a name="delete-3"><span class="bold_code">delete(ChannelPid, Name, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Deletes the file specified by <span class="code">Name</span>, like
          <span class="code">file:delete/1</span></p>
      </p></div>
    <p><a name="make_dir-2"><span class="bold_code">make_dir(ChannelPid, Name) -&gt; </span></a><br><a name="make_dir-3"><span class="bold_code">make_dir(ChannelPid, Name, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Creates a directory specified by <span class="code">Name</span>. <span class="code">Name</span> should
          be a full path to a new directory. The directory can only be
          created in an existing directory.</p>
      </p></div>
    <p><a name="del_dir-2"><span class="bold_code">del_dir(ChannelPid, Name) -&gt; </span></a><br><a name="del_dir-3"><span class="bold_code">del_dir(ChannelPid, Name, Timeout) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">ChannelPid = pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Timeout = timeout()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Deletes a directory specified by <span class="code">Name</span>. The directory
          should be empty.</p>
      </p></div>
  
  
   
</div>
<div class="footer">
<hr>
<p>Copyright © 2005-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>