Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > C


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


compact, uncompact, ccat — compact and uncompact files, and cat them


compact [sfile] ...

uncompact [cfile] ...

ccat [cfile] ...


compact compresses the named files using an adaptive Huffman code. If no file names are given, standard input is compacted and sent to the standard output. compact operates as an on-line algorithm. Each time a byte is read, it is encoded immediately according to the current prefix code. This code is an optimal Huffman code for the set of frequencies seen so far. It is unnecessary to attach a decoding tree in front of the compressed file because the encoder and the decoder start in the same state and stay synchronized. Furthermore, compact and uncompact can operate as filters. In particular,

... | compact | uncompact | ...

operates as a (very slow) no-op.

When an argument file is given, it is compacted, the resulting file is placed in file.C, and file is unlinked. The first two bytes of the compacted file code the fact that the file is compacted. These bytes are used to prohibit recompaction.

The amount of compression to be expected depends on the type of file being compressed. Typical file size reduction (in percent) through compression are: Text, 38%; Pascal Source, 43%; C Source, 36%; and Binary, 19%.

uncompact restores the original file from a file compressed by compact. If no file names are specified, standard input is uncompacted and sent to the standard output.

ccat writes the specified c_file, compressed by compact, to standard output, without uncompressing the file.


The compact commands recognize the following operands:


Compacted file.


Source file to compact or uncompact. If no file names are given, the commands use standard input and sent to the standard output. compact places the compacted file in file.C.

Access Control Lists (ACLs)

On systems that implement access control lists, when a new file is created with the effective user and group ID of the caller, the original file's ACL is copied to the new file after being altered to reflect any change in ownership (see acl(5) and aclv(5)). In JFS file systems, files created by compact, uncompact or ccat do not inherit their parent directory's default ACL entries (if any), but instead retain their original ACLs. When a file being compacted or uncompacted resides on a JFS file system, and the compacted or uncompacted file resides on an HFS file system (or vice versa), as the result of ccat or the use of compact or uncompact as a filter, optional ACL entries are lost.


On short-file-name systems, the last segment of the file name must contain 12 or fewer characters to allow space for the appended .C.



Access control list entries of networked files are summarized (as returned in st_mode by stat()), but not copied to the new file (see stat(2)).


compact was developed by Colin L. Mc Master.



compacted file created by compact, removed by uncompact


compress(1), pack(1), acl(5), aclv(5).

Gallager, Robert G., "Variations on a Theme of Huffman," I.E.E.E. Transactions on Information Theory, vol. IT-24, no. 6, November 1978, pp. 668 - 674.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.