cksum - Displays the checksum and byte count of a file
Interfaces documented on this reference page conform to
industry standards as follows:
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
The path name of a file to be checked.
If no file is specified, standard input is used.
The cksum command reads the files specified by the file
argument and calculates a 32-bit checksum Cyclic Redundancy
Check (CRC) and the byte count for each file. If no
files are specified, standard input is read. The checksum,
number of bytes, and file name are written to standard
output. If standard input is used, no path name is
The cksum command can be used to compare a suspect file
copied or communicated over noisy transmission lines
against an exact copy of a trusted file. The comparison
made by the cksum command may not be cryptographically
secure; however, it is unlikely that an accidentally damaged
file will produce the same checksum as the original
[Tru64 UNIX] The cksum command uses a different algorithm
than the sum command to calculate the 32-bit checksum CRC.
The cksum command uses a CRC algorithm based on the Ethernet
standard frame check. In addition, the sum block
count is an octet count in cksum.
[Tru64 UNIX] The IEEE Std 1003.2-1992 and X/Open CAE
specifications require a slightly different method of calculating
checksum values. To obtain these new standards,
set the environment variable CMD_ENV to xpg4 as follows:
[Tru64 UNIX] To maintain compatibility if the environment
variable CMD_ENV is not set, the default action of the
cksum command reports the traditional checksum values.
The CRC checksum is obtained in the following way:
The encoding is defined by the generating polynomial:
G(x) = x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 +
x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1
Mathematically, the CRC value corresponding to a given
file is defined by the following procedure: The n bits to
be evaluated are considered to be the coefficients of a
mod 2 polynomial M(x) of degree n-1. These n bits are the
bits from the file, with the most significant bit being
the most significant bit of the first octet of the file
and the last bit being the least significant bit of the
last octet, padded with zero bits (if necessary) to
achieve an integral number of octets, followed by one or
more octets representing the length of the file as a
binary value, least significant octet first. The smallest
number of octets capable of representing this integer is
used. M(x) is multiplied by x^32 (that is, shifted left
32 bits) and divided by G(x) using mod 2 division, producing
a remainder R(x) of degree less than or equal to 31.
The coefficients of R(x) are considered to be a 32-bit
sequence. The bit sequence is complemented and the result
is the CRC.
The following exit values are returned: All files were
processed successfully. An error occurred.
To display the checksum and the size, in bytes, of file1
and file2, enter: cksum file1 file2 3995432187 1390
file1 3266927833 20912 file2
This output shows that the checksum of the file1 file is
3995432187 and contains 1390 bytes, and that the checksum
of the file2 file is 3266927833 and contains 20912 bytes.
ENVIRONMENT VARIABLES [Toc] [Back]
The following environment variables affect the execution
of cksum: [Tru64 UNIX] If this variable is set to xpg4,
the method of calculating checksum values specified by
IEEE Std 1003.2-1992 (POSIX.2) and X/Open CAE specifications
is used. Provides a default value for the internationalization
variables that are unset or null. If LANG is
unset or null, the corresponding value from the default
locale is used. If any of the internationalization variables
contain an invalid setting, the utility behaves as
if none of the variables had been defined. If set to a
non-empty string value, overrides the values of all the
other internationalization variables. Determines the
locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as
opposed to multibyte characters in arguments). Determines
the locale for the format and contents of diagnostic messages
written to standard error. Determines the location
of message catalogues for the processing of LC_MESSAGES.
Commands: sum(1), wc(1)
[ Back ]