The ftp client though located in the inets application is, at least currently, a stand alone application. No processes related to ftp will be started when starting the inets application, and ftp will not add children to the inets supervisor tree. Rather a ftp client is thought of as a short lived process created when ftp:open/1 is called, and hence can not be code upgraded in runtime.
The following is a simple example of an ftp session, where
the user guest
with password password
logs on to
the remote host erlang.org
, and where the file
appl.erl
is transferred from the remote to the local
host. When the session is opened, the current directory at
the remote host is /home/guest
, and /home/fred
at the local host. Before transferring the file, the current
local directory is changed to /home/eproj/examples
, and
the remote directory is set to
/home/guest/appl/examples
.
1> {ok, Pid} = ftp:open("erlang.org"). {ok,<0.22.0>} 2> ftp:user(Pid, "guest", "password"). ok 3> ftp:pwd(Pid). {ok, "/home/guest"} 4> ftp:cd(Pid, "appl/examples"). ok 5> ftp:lpwd(Pid). {ok, "/home/fred"}. 6> ftp:lcd(Pid, "/home/eproj/examples"). ok 7> ftp:recv(Pid, "appl.erl"). ok 8> ftp:close(Pid). ok