File: sum.man

package info (click to toggle)
tcllib 1.10-dfsg-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 17,708 kB
  • ctags: 6,122
  • sloc: tcl: 106,354; ansic: 9,205; sh: 8,707; xml: 1,766; yacc: 753; makefile: 115; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (107 lines) | stat: -rw-r--r-- 2,744 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[manpage_begin sum n 1.1.0]
[copyright {2002, Pat Thoyts <patthoyts@users.sourceforge.net>}]
[moddesc   {Cyclic Redundancy Checks}]
[titledesc {Calculate a sum(1) compatible checksum}]
[require Tcl 8.2]
[require sum [opt 1.1.0]]
[description]
[para]

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.

[section COMMANDS]

[list_begin definitions]

[call [cmd "::crc::sum"] \
        [opt "[arg -bsd] | [arg -sysv]"] \
        [opt [arg "-format fmt"]] \
        [opt [arg "-chunksize size"]] \
        [lb] [arg "-filename file"] | \
        [arg "-channel chan"] | [arg "string"] [rb]]

The command takes string data or a file name or a channel and returns
a checksum value calculated using the [syscmd sum(1)] algorithm. The
result is formatted using the [arg format](n) specifier provided or as
an unsigned integer (%u) by default.

[list_end]

[section OPTIONS]

[list_begin definitions]

[def "-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.

[def "-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.

[def "-filename [arg name]"]

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

[def "-channel [arg 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.

[def "-chunksize [arg size]"]

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

[def "-format [arg string]"]

Return the checksum using an alternative format template.

[list_end]

[section EXAMPLES]

[para]
[example {
% crc::sum "Hello, World!"
37287
}]

[para]
[example {
% crc::sum -format 0x%X "Hello, World!"
0x91A7
}]

[para]
[example {
% crc::sum -file sum.tcl
13392
}]

[see_also sum(1) cksum(n) crc32(n)]
[section AUTHORS]
Pat Thoyts

[section {BUGS, IDEAS, FEEDBACK}]

This document, and the package it describes, will undoubtedly contain
bugs and other problems.

Please report such in the category [emph crc] of the
[uri {http://sourceforge.net/tracker/?group_id=12883} {Tcllib SF Trackers}].

Please also report any ideas for enhancements you may have for either
package and/or documentation.


[keywords sum cksum checksum crc crc32 {cyclic redundancy check} {data integrity} security]
[manpage_end]