ActiveTcl User Guide

[ Main table Of Contents | Tcllib Table Of Contents | Tcllib Index ]

sum(n) 1.1.0 "sum"

NAME

sum - calculate a sum(1) compatible checksum

TABLE OF CONTENTS

    TABLE OF CONTENTS
    SYNOPSIS
    DESCRIPTION
    COMMANDS
    OPTIONS
    EXAMPLES
    AUTHORS
    SEE ALSO
    KEYWORDS
    COPYRIGHT

SYNOPSIS

package require Tcl 8.2
package require sum ?1.1.0?

::crc::sum ?-bsd | -sysv? ?-format fmt? ?-chunksize size? [ -filename file | -channel chan | string ]

DESCRIPTION

This package provides a Tcl-only implementation of the sum(1) command which calculates a 16 bit checksum value from the input data. The BSD sum algorithm is used by default but the SysV algorithm is also available.

COMMANDS

::crc::sum ?-bsd | -sysv? ?-format fmt? ?-chunksize size? [ -filename file | -channel chan | string ]
The command takes string data or a file name or a channel and returns a checksum value calculated using the sum(1) algorithm. The result is formatted using the format(n) specifier provided or as an unsigned integer (%u) by default.

OPTIONS

-sysv
The SysV algorithm is fairly naive. The byte values are summed and any overflow is discarded. The lowest 16 bits are returned as the checksum. Input with the same content but different ordering will give the same result.

-bsd
This algorithm is similar to the SysV version but includes a bit rotation step which provides a dependency on the order of the data values.

-filename name
Return a checksum for the file contents instead of for parameter data.

-channel chan
Return a checksum for the contents of the specified channel. The channel must be open for reading and should be configured for binary translation. The channel will no be closed on completion.

-chunksize size
Set the block size used when reading data from either files or channels. This value defaults to 4096.

-format string
Return the checksum using an alternative format template.

EXAMPLES

 
% crc::sum "Hello, World!"
37287


 
% crc::sum -format 0x%X "Hello, World!"
0x91A7


 
% crc::sum -file sum.tcl
13392


AUTHORS

Pat Thoyts

SEE ALSO

cksum(n) , crc32(n) , sum(1)

KEYWORDS

checksum , cksum , crc , crc32 , cyclic redundancy check , data integrity , security , sum

COPYRIGHT

Copyright © 2002, Pat Thoyts <patthoyts@users.sourceforge.net>

Copyright © 2004 for compilation: ActiveState