← man/data_processing
crc32 — man crc32 — 80×24
ugur@toprak:~/man/data_processing$man crc32
Bölüm 1 Veri İşleme

crc32

32-bit Döngüsel Artıklık Denetimi (Cyclic Redundancy Check) Gerçekleştirme


Synopsis

       package require Tcl  8.2

       package require crc32  ?1.3?

       ::crc::crc32 ?-format format? ?-seed value? [ -channel chan | -filename file | message ]

       ::crc::Crc32Init ?seed?

       ::crc::Crc32Update token data

       ::crc::Crc32Final token

____________________________________________________________________________________________________

Description

Bu paket, http://www.naaccr.org/standard/crc32/document.html adresinde sağlanan bilgilere dayanarak CRC-32 algoritmasının bir Tcl uygulamasını sunar. Eğer critcl paketi veya Trf paketi mevcutsa, kontrol toplamı (checksum) hesaplamasını hızlandırmak için dahili olarak derlenmiş bir sürüm kullanılabilir.

Commands

::crc::crc32 ?-format format? ?-seed value? [ -channel chan | -filename file | message ] Bu komut, dize verisi (string), bir kanal veya dosya adı alır ve CRC-32 algoritması kullanılarak hesaplanan bir kontrol toplamı değerini döndürür. Sonuç, sağlanan format(n) belirteci kullanılarak biçimlendirilir. Varsayılan davranış, değeri işaretsiz bir tamsayı (format %u) olarak döndürmektir.

Options

-channel name Bir kanaldan okunan veriler için kontrol toplamı döndürür. Komut, eof (dosya sonu) true olana kadar kanaldan veri okuyacaktır. Bu hesaplama sırasında olayları (events) işleyebilmeniz gerekiyorsa PROGRAMLAMA ARAYÜZÜ bölümüne bakın.

-filename name Belirtilen dosyayı açan, kodlamayı binary olarak ayarlayan ve ardından -channel seçeneği kullanılmış gibi davranan kolaylaştırıcı bir seçenektir. Dosya işlem tamamlandığında kapatılır.

-format string Kontrol toplamını alternatif bir biçim şablonu kullanarak döndürür.

-seed value CRC hesaplaması için alternatif bir tohum (seed) değeri seçer. Varsayılan değer 0xffffffff'dir. Bu, önce tüm yapıyı bir dizeye dönüştürmeden veri yapılarının CRC değerini hesaplamak için yararlı olabilir. Önceki üyenin CRC'si, bir sonraki üyenin CRC'sini hesaplamak için tohum olarak kullanılabilir. CRC-32 algoritmasının son bir XOR adımı içerdiğini unutmayın. Kademeli (incremental) işleme isteniyorsa, algoritmanın çıktısını daha sonraki işlemler için tohum olarak kullanmadan önce bu son XOR adımı geri alınmalıdır. Bu çalışma modu için tasarlanmış olan PROGRAMLAMA ARAYÜZÜ'nü kullanmak daha basit bir alternatiftir.

Programming Interface

CRC-32 paketi, kontrol toplamını, kendisine istenildiği zaman ek verilerin eklenebileceği bir bağlam (context) değişkeni kullanarak gerçekleştirir. Bu, özellikle Tk uygulaması veya bir web sunucusu paketi gibi olay tabanlı bir ortamda yararlıdır. Kontrol toplamı yapılacak veriler, bir fileevent işleyicisi sırasında ayrık bloklar halinde kademeli olarak işlenebilir. Bu, bir GUI uygulamasının etkileşimli yapısını iyileştirebilir ve aşırı bellek tüketimini önlemeye yardımcı olabilir.

::crc::Crc32Init ?seed? Yeni bir CRC32 bağlamı başlatır. Kalan işlevler için kullanılması gereken bir belirteç (token) kimliği döndürür. Gerekirse isteğe bağlı bir tohum (seed) belirtilebilir.

::crc::Crc32Update token data Belirteç (token) ile tanımlanan kontrol toplamına veri ekler. Crc32Update $token "abcd" çağrısı yapmak, Crc32Update $token "ab" çağrısını takiben Crc32Update $token "cb" çağrısı yapmakla eşdeğerdir. ÖRNEKLER bölümüne bakın.

::crc::Crc32Final token Kontrol toplamı değerini döndürür ve bu belirteç tarafından tutulan tüm kaynakları serbest bırakır. Bu komut tamamlandığında belirteç geçersiz olacaktır. Sonuç 32 bitlik bir tamsayı değeridir.

Examples


       % crc::crc32 "Hello, World!"
       3964322768

       % crc::crc32 -format 0x%X "Hello, World!"
       0xEC4AC3D0

       % crc::crc32 -file crc32.tcl
       483919716

       % set tok [crc::Crc32Init]
       % crc::Crc32Update $tok "Hello, "
       % crc::Crc32Update $tok "World!"
       % crc::Crc32Final $tok
       3964322768

Authors

Pat Thoyts

BUGS, IDEAS, FEEDBACK Bu belge ve tanımladığı paket şüphesiz hatalar ve başka sorunlar içerecektir. Lütfen bunları Tcllib SF Trackers'ın [http://sourceforge.net/tracker/?group_id=12883] crc kategorisinde bildirin. Lütfen paket ve/veya belgeler için sahip olabileceğiniz her türlü geliştirme fikrini de bildirin.

See Also

cksum(n), crc16(n), sum(n)

Keywords

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

Category

Hashes, checksums, and encryption

Copyright (c) 2002, Pat Thoyts

crc 1.3 crc32(n)