1cksum(n) Cyclic Redundancy Checks cksum(n)
2
3
4
5______________________________________________________________________________
6
8 cksum - Calculate a cksum(1) compatible checksum
9
11 package require Tcl 8.2
12
13 package require cksum ?1.1.4?
14
15 ::crc::cksum ?-format format? ?-chunksize size? [ -channel chan |
16 -filename file | string ]
17
18 ::crc::CksumInit
19
20 ::crc::CksumUpdate token data
21
22 ::crc::CksumFinal token
23
24______________________________________________________________________________
25
27 This package provides a Tcl implementation of the cksum(1) algorithm
28 based upon information provided at in the GNU implementation of this
29 program as part of the GNU Textutils 2.0 package.
30
32 ::crc::cksum ?-format format? ?-chunksize size? [ -channel chan |
33 -filename file | string ]
34 The command takes string data or a channel or file name and re‐
35 turns a checksum value calculated using the cksum(1) algorithm.
36 The result is formatted using the format(n) specifier provided
37 or as an unsigned integer (%u) by default.
38
40 -channel name
41 Return a checksum for the data read from a channel. The command
42 will read data from the channel until the eof is true. If you
43 need to be able to process events during this calculation see
44 the PROGRAMMING INTERFACE section
45
46 -filename name
47 This is a convenience option that opens the specified file, sets
48 the encoding to binary and then acts as if the -channel option
49 had been used. The file is closed on completion.
50
51 -format string
52 Return the checksum using an alternative format template.
53
55 The cksum package implements the checksum using a context variable to
56 which additional data can be added at any time. This is expecially use‐
57 ful in an event based environment such as a Tk application or a web
58 server package. Data to be checksummed may be handled incrementally
59 during a fileevent handler in discrete chunks. This can improve the in‐
60 teractive nature of a GUI application and can help to avoid excessive
61 memory consumption.
62
63 ::crc::CksumInit
64 Begins a new cksum context. Returns a token ID that must be used
65 for the remaining functions. An optional seed may be specified
66 if required.
67
68 ::crc::CksumUpdate token data
69 Add data to the checksum identified by token. Calling CksumUp‐
70 date $token "abcd" is equivalent to calling CksumUpdate $token
71 "ab" followed by CksumUpdate $token "cb". See EXAMPLES.
72
73 ::crc::CksumFinal token
74 Returns the checksum value and releases any resources held by
75 this token. Once this command completes the token will be in‐
76 valid. The result is a 32 bit integer value.
77
79 % crc::cksum "Hello, World!"
80 2609532967
81
82
83 % crc::cksum -format 0x%X "Hello, World!"
84 0x9B8A5027
85
86
87 % crc::cksum -file cksum.tcl
88 1828321145
89
90
91 % set tok [crc::CksumInit]
92 % crc::CksumUpdate $tok "Hello, "
93 % crc::CksumUpdate $tok "World!"
94 % crc::CksumFinal $tok
95 2609532967
96
97
99 Pat Thoyts
100
102 This document, and the package it describes, will undoubtedly contain
103 bugs and other problems. Please report such in the category crc of the
104 Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please also
105 report any ideas for enhancements you may have for either package
106 and/or documentation.
107
108 When proposing code changes, please provide unified diffs, i.e the out‐
109 put of diff -u.
110
111 Note further that attachments are strongly preferred over inlined
112 patches. Attachments can be made by going to the Edit form of the
113 ticket immediately after its creation, and then using the left-most
114 button in the secondary navigation bar.
115
117 crc32(n), sum(n)
118
120 checksum, cksum, crc, crc32, cyclic redundancy check, data integrity,
121 security
122
124 Hashes, checksums, and encryption
125
127 Copyright (c) 2002, Pat Thoyts
128
129
130
131
132tcllib 1.1.4 cksum(n)