Sendfile is a SAFT implementation for UNIX and serves as a tool for asynchronous sending of files in the Internet, conserving their file attributes.

Note: F*EX (File EXchange) is the successor of SAFT/sendfile

sendfile consists (besides a complete documentation) of the following parts:

The sendfile client is a user software which transfers files to the sendfiled of the recipient's host. The sendfiled takes the files, stores them in a local spool area and informes the recipient that files have been spooled. Now the recipient can invoke the receive client which will copy the files into the local directory, deleting the file in the spool area.

Examples for the sendfile client:

  $ sendfile
  $ sendfile -a Sources *.f90 Makefile zrxh0370

Sendfile invokes the compressing algorithm before transfering files and will save network bandwith by doing so. Furthermore, it is possible to send directories or multiple files within an archive file (see second example above). An automated encryption using PGP can be performed optionally.

The sendmsg client is a user software for sending one-line text based messages to the sendfiled of the recipient's host. The sendfiled will write the message directly to the terminal of the recipient.

Example for sendmsg:

  $ sendmsg
  message: start making pizza, we'll arrive soon!

For receiving files from the local spool area the recipient invokes the receive client. Example:

  $ receive -l
  From (Ulli Horlacher)
    1) 1995-08-10 15:41:24     3 KB  README
    2) 1995-08-10 15:41:37    30 KB  doku.txt
    3) 1995-08-10 15:42:09   113 KB  Sources (archive)

  $ receive R*
  %receive-I, README received

If there are existing files with the exact same file name, the receive client will ask for confirmation before overwriting the file. Before creating filenames containing special characters (escape codes, meta characters) receive will ask the user for confirmation. Concerning security reasons sendfile is non critical. All clients will run as normal user software programs and the server will be controlled by the (x)inetd. The sendfiled writes only into the spool area directory, using the UID of the recipient. The system administrator can create a config-file of user names which are denied from using the sendfile service and limiting the size of the spool area. The user himself can create a file of sender names for which receiving of files will be denied.

Sendfile has been ported to AIX, BSDI, Convex-OS, Digital Unix, FreeBSD, HP-UX, IRIX, Linux, MacOSX, NeXTstep/Mach, OSF/1, SunOS 4, Solaris and Ultrix.

Sendfile must be installed by root (super user), because the sendfiled is a privileged Internet daemon. An automated installation script is included in the packet, a 40 pages documentation (in German language) and man pages for the clients and the server.

Sendfile requires an ANSI-C-compiler for compiling and gzip at runtime. If you are interested in trying, installing and using sendfile, the software can be downloaded.

The active development of sendfile has been stopped, it is now in maintenance mode: only bugs will get fixed, but no more new features will be added.

F*EX (File EXchange) is the successor of SAFT/sendfile.

More documentation


Gerstensaft is an easy to use graphical oriented frontend for sendfile, sendmsg and receive. It features sending files and directories and provides a history of used addresses. Since it is only a frontend, you will need the sendfile program installed as well.


Another file transfer service is rstash. It is not SAFT-based, but has some similarties to sendfile. It's focus is on host-to-host transfers for administrative tasks like backups. User-to-user transfers are not supported.

Back to the homepage
last updated: 2009-01-09
author: Ulli Horlacher