Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
BTOA(1)			    General Commands Manual		       BTOA(1)

       btoa - encode/decode binary to printable	ASCII

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

       Btoa  is	a filter which reads binary bytes from the input file and gen-
       erates printable	ASCII characters on the	output	file.  It  attaches  a
       header  and a checksum to the archive. It can also reverse this,	creat-
       ing 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.  An-
       other 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

       It is possible to leave out the file names and redirect stdin and  std-
       out with	'<' and	'>' to the desired files. This is to maintain compati-
       bility 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 diag-
       nosis file which	can be used to extract the damaged part	from an	error-
       free  archive.  The extracted part can then be used to correct the dam-
       aged archive.  Btoa has options to  perform  the	 reparation  automati-
       cally.  This  is	 especially  useful when downloading data converted to
       text files, and occasionally finding that an archive file of  consider-
       able 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	 down-
       loaded.	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:  Di-
       agnosis 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

       Paul Rutter  Joe	Orost  Stefan Parmark

       Btoa  will not work properly unless the input is	a true file or a redi-
       rected one. This	is because file	positions are collected	during diagno-
       sis  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).

			       21 February 1989			       BTOA(1)


Want to link to this manual page? Use this URL:

home | help