Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  BTOA (1)


btoa - encode/decode binary to printable ASCII


Known Bugs


btoa [-adhor] [input filename] [output filename]


Btoa is a filter which reads binary bytes from the input file and generates printable ASCII characters on the output file. It attaches a header and a checksum to the archive. It can also reverse this, creating a binary file from the archive.

Since last version of btoa/atob, several new features have been added. The most obvious one is that atob has been integrated with btoa. They are now the same program which is called with different arguments. Another is the ability to repair damaged archives.

The new version is compatible with the old version, that is, it can still encode and decode old btoa files.

Btoa has an option to decode the archive, restoring the binary bytes. It strips the input file until it finds a valid header, and continues decoding until the end mark is found. It recognices both old- and new-style headers, and can decode both. It is possible to leave out the destination name when decoding new-style archives, because the name is stored in the header. Entering a name will override the autonaming function.

It is possible to leave out the file names and redirect stdin and stdout with ’<’ and ’>’ to the desired files. This is to maintain compatibility with earlier versions of btoa.

Btoa now adds a single byte checksum to each row in the archive. When an error is found, diagnosis automatically starts and produces a diagnosis file which can be used to extract the damaged part from an errorfree archive. The extracted part can then be used to correct the damaged archive. Btoa has options to perform the reparation automatically. This is especially useful when downloading data converted to text files, and occasionally finding that an archive file of considerable size turns is corrupted.


Btoa encodes 4 binary bytes into 5 characters, expanding the file by 25%. As a special case 4 zeroes will be encoded as ’z’ and 4 spaces as ’y’. This makes it possible to compress the archive a bit.


-h Shows help on btoa. Switches to atob (decoding) mode.
-o Switches to old version of btoa.
-d Extracts repair file from diagnosis file. This assumes that an undamaged version of the archive and a file called Repairs the damaged archive. A file named ’btoa.rep’ must be present for this to work.


Below follows a description of a normal repair session. Lines beginning with ’Local>’ were typed on the computer to which the file was downloaded. Accordingly, lines typed on the connected computer will begin with ’Remote>’. Sending a file to the other computer will be noted as ’transmit file’.

A normal repairing procedure is as follows: Local> btoa -a file.btoa btoa: Bad checksum on line 2648. btoa: Starting diagnosis. btoa: Diagnosis output to ’btoa.dia’. Local> transmit btoa.dia

Remote> btoa -d file.btoa btoa: Repair output to ’btoa.rep’. Remote> transmit btoa.rep

Local> btoa -a btoa.rep btoa: Repaired archive written to ’btoa.rdy’.

You can now erase file.btoa and decode btoa.rdy using ’btoa -a btoa.rdy’.


Paul Rutter Joe Orost Stefan Parmark


Btoa will not work properly unless the input is a true file or a redirected one. This is because file positions are collected during diagnosis for later reference when producing the diagnosis file. The bug is actually in fseek() which only can reposition ’real’ files.

Send bug reports to (Stefan Parmark).

Search for    or go to Top of page |  Section 1 |  Main Index

--> BTOA (1) 21 February 1989

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.