Problems restraining read command to 32 bits -perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problems restraining read command to 32 bits -perl
# 1  
Old 07-15-2009
Problems restraining read command to 32 bits -perl

Hey everybody,

I'm having difficulty using the read command to perform a checksum operation. Whenever I print the final checksum, the result always returns FFFFFFFF, and I know thats not the checksum.

Code:
 #!/usr/bin/perl -w
  
  use strict;
  use FileHandle;
  use warnings;
  my $data = "file.bin";
  my $buffer;
  my $string;
  my $n = 0;
  my $checksum = 0;
  my $num = 0;
  my $str = unpack("B32", pack("N", shift));
  my $bits = 4;
  my $decimal;

open FILE, $data or die $!;
binmode FILE;  
 while (($n = read FILE, $buffer, 4))
 {
 
 $decimal = unpack("N", pack("B32", $buffer));
 
 {$checksum = $checksum + $decimal;
 #$num = $num + $bits;}
 
 #print "1. $num\n";
 print "2. $decimal\n";
 #print "3. $n bytes read\n";
 print "4. $checksum \n";
 }
 
 $checksum = $checksum & 0xFFFFFFFF;

Basically, I'm trying to read a binary file 32 bits at a time by unpacking them into decimal and then adding them. Furthermore, I am trying to use the $checksum & 0xFFFFFFFFF command to restrain the checksum to 32 bits. Also, just ignore the commented out stuff, I was using it for my own testing. Any assistance would be greatly appreciated.
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Read from file and execute the read command

Hi, I am facing issues with the below: I have a lookup file say lookup.lkp.This lookup.lkp file contains strings delimited by comma(,). Now i want to read this command from file and execute it. So my code below is : Contents in the lookup.lkp file is : c_e,m,a,`cd $BOX | ls cef_*|tail... (7 Replies)
Discussion started by: vital_parsley
7 Replies

2. What is on Your Mind?

Place Bits & Win Bits!!! - 17th Annual Satellite Awards

Ten movies have been nominated as best motion picture by the International Press Academy, presentation of the 2012 Satellite Awards will be held on 16th December at Los Angeles, CA. Place your bits here on one of the below nominated movie of your choice:- Argo ... (0 Replies)
Discussion started by: Yoda
0 Replies

3. Shell Programming and Scripting

how to read tail -F command output in perl

Hi All, How I will read the output of the tail -F command in perl. I have text file with below contains file1.txt 1 2 3 4 $running=1; sub openLog($) { (my $log) = @_; (1 Reply)
Discussion started by: pravin27
1 Replies

4. UNIX for Dummies Questions & Answers

32 bits procesaor with 64 bits Solaris

people i have a problem i have a 32 bits sparc processor, and solaris 64 bits processor, i install a oracle data base 64 bits, but my oracle will not run because my processor is from 32 bits this is ok??, i know if i have x86 i cannot install a 64 bits operatin system in a 32 bits processor. ... (0 Replies)
Discussion started by: enkei17
0 Replies

5. Shell Programming and Scripting

Perl script variable to read shell command

Solaris 10 Korn shell ksh, Hi there, I have figured out to get yesterday's date which is using the below command: TZ=GMT+24; date +%d-%b-%Y to get the format of 30-Sep-2008 and TZ=GMT+24; date +%Y%m%d to get the format of 20080930. I need this two format. In my perl script below I need... (4 Replies)
Discussion started by: bulkbiz
4 Replies

6. AIX

How to convert a partition usin 64 bits kernel to 32 bits kernel?

Hello there: I know that exist a procedure to convert an OS using 32bits kernel to 64 bits kernel. But, exist a procedure to convert an OS using 64bits to 32 bits kernel? Please help me. Regards. (2 Replies)
Discussion started by: GEIER
2 Replies

7. Shell Programming and Scripting

Problems while read a file

Hello guys, i need your help, let me try to explain what i need: I have a file (plain text) for example with 500 lines, i need to read only from the line 200 until the end of file, and serch the word 'ERROR' onli between lines 200 and 500, that have sence? Thanx for your help. (7 Replies)
Discussion started by: lestat_ecuador
7 Replies

8. UNIX for Dummies Questions & Answers

Changing 24 bits to 8 bits display

Hello all, I was wondering if anyone can tell me how to change 24 bits depth display to 8 bits depth display for Sun Ultra1, running Solaris 8? THANKS in advance. I think that the command is ffbconfig, but it has nothing about depth. (4 Replies)
Discussion started by: larry
4 Replies
Login or Register to Ask a Question
sum(1)							      General Commands Manual							    sum(1)

NAME
sum - print checksum and block or byte count of file(s) SYNOPSIS
[file ...] Remarks is obsolescent and should not be used in new applications that are intended to be portable between systems. Use instead (see cksum(1)). DESCRIPTION
calculates and prints to standard output a checksum for each named file, and also prints the size of the file in 512 byte blocks, rounded up. The default algorithm is a 16-bit sum of the bytes in which overflow is ignored. Alternate algorithms can be selected with the and options. Standard input is used if no file names are given. is typically used to verify data integrity when copying files between systems. Options recognizes the following options: Use an alternate algorithm in which the 16-bit sum is right rotated with each byte in computing the checksum. Use the 32-bit cyclical redundancy check (CRC) algorithm used by RETURN VALUE
returns the following values upon completion: All files were processed successfully. One or more files could not be read or some other error occurred. If an inaccessible file is encountered, continues processing any remaining files, but the final exit status is affected. DIAGNOSTICS
Read error conditions are indistinguishable from end of file on most devices; check the block or byte count. WARNINGS
This command is likely to be withdrawn from X/Open standards. Applications using this command might not be portable to other vendors' platforms. The usage of cksum(1) is recommended. SEE ALSO
cksum(1), wc(1). STANDARDS CONFORMANCE
sum(1)