Hello!
What you can try out is: have a huge circular buffer for example say around 6144 (6KB) , you can experiment with the size!!
What i mean by circular is have two pointers, start_ptr and processed_ptr.
Code:
offset = 0;
read(fd, &buffer[offset], 3KB);
if(offset == 0)
{
// next time read in the next chunk of buffer
offset = 3KB;
start_ptr = 0;
}
else
{
offset = 0;
start_ptr = 3KB;
}
bytes_read = start_ptr - processed_ptr;
//start processing it
while(bytes_read >= minimum_size_of_record)
{
ret_val = check_for_complete_record(processed_ptr);
// incomplete record
if(ret_val == -1)
{
// don't modify processed_ptr since the record is not complete
break; //without modifying the pointers
}
else
{
// in this case check_for_complete_record will return the size of record
bytes_read = bytes_read - ret_val;
processed_ptr = processed_ptr + ret_val;
}
}
1) Have start_ptr and processed_ptr as global
2) You must take care of rollover of processed_ptr for every read
Code:
if(processed_ptr >= MAX_BUFFER_SIZE) // in this case 6KB
processed_ptr = 0;
Hi All,
I have written a script which does some editing in the files, based on user input.This might not be the most elegant way of doing it and there would be many improvements needed.
Please go through it and let me know how it could be improved.
Suggestions are welcome!!
Thanks!... (2 Replies)
Hi!
Thank you for the help yesterday
This is the finished product
There is one more thing I would like to do to it but I’m not to certain
On how to proceed I would like to log all output to a log in order to
Be able to roll back
This script is meant to be used in repairing a... (4 Replies)
Hello,
I am pretty new to shell scripts and I recently wrote one that seems to do what it should but I am exploring the possibility of improving its performance and would appreciate some help. Here is what it does - Its meant to monitor a bunch of systems (reads in IPs one at a time from a flat... (9 Replies)
can anyone help to share the knowledge on linux os improvement?
1) os account
- use window AD authentication, such as ldap, but how to set /etc/passwd, where to put user home?
2) user account activity
- how to log os user activity
share the idea and what tools can do that...thx (5 Replies)
Hi All,
Here is my script
#! /bin/sh
var1=some email id
var2=some email id
grep -i "FAILED FILE FORMAT VALIDATION" /opt >tmp2
diff tmp1 tmp2 | grep ">" >tmp3
if
then
cat tmp3 | mailx -s " Error Monitoring" $var2
else
echo "Pattern NOt Found" | mailx -s " Error Monitoring" $var1... (1 Reply)
Hi This is my Following code:
#!/bin/sh
echo "TOTAL_NO_OF_MAILS"
read TOTAL_NO_OF_MAILS
echo "TOTAL_NO_OF_TICKETS "
read TOTAL_NO_OF_TICKETS
echo "TICKETS_IN_QUEUE"
read TICKETS_IN_QUEUE
rm -rf `pwd`/Focus
echo "Hi Team\nSTATS IN CLRS MAIL BOX\n\n==============================" >> Focus... (11 Replies)
Below script is used to search numeric data from around 400 files in a folder. I have 300 such folders. Need help in performance improvement in the script.
Below Script searches 20 such folders ( 300 files in each folder) simultaneously. This increases cpu utilization upto 90% What changes... (3 Replies)
Discussion started by: vegasluxor
3 Replies
LEARN ABOUT OSX
perlio::gzip
gzip(3) User Contributed Perl Documentation gzip(3)NAME
PerlIO::gzip - Perl extension to provide a PerlIO layer to gzip/gunzip
SYNOPSIS
use PerlIO::gzip;
open FOO, "<:gzip", "file.gz" or die $!;
print while <FOO>; # And it will be uncompressed...
binmode FOO, ":gzip(none)" # Starts reading deflate stream from here on
DESCRIPTION
PerlIO::gzip provides a PerlIO layer that manipulates files in the format used by the "gzip" program. Compression and Decompression are
implemented, but not together. If you attempt to open a file for reading and writing the open will fail.
EXPORT
PerlIO::gzip exports no subroutines or symbols, just a perl layer "gzip"
LAYER ARGUMENTS
The "gzip" layer takes a comma separated list of arguments. 4 exclusive options choose the header checking mode:
gzip
The default. Expects a standard gzip file header for reading, writes a standard gzip file header.
none
Expects or writes no file header; assumes the file handle is immediately a deflate stream (eg as would be found inside a "zip" file)
auto
Potentially dangerous. If the first two bytes match the "gzip" header "x1fx8b" then a gzip header is assumed (and checked) else a
deflate stream is assumed. No different from gzip on writing.
autopop
Potentially dangerous. If the first two bytes match the "gzip" header "x1fx8b" then a gzip header is assumed (and checked) else the
layer is silently popped. This results in gzip files being transparently decompressed, other files being treated normally. Of course,
this has sides effects such as File::Copy becoming gunzip, and File::Compare comparing the uncompressed contents of files.
In autopop mode Opening a handle for writing (or reading and writing) will cause the gzip layer to automatically be popped.
Optionally you can add this flag:
lazy
For reading, defer header checking until the first read. For writing, don't write a header until the first buffer empty of compressed
data to disk. (and don't write anything at all if no data was written to the handle)
By default, gzip header checking is done before the "open" (or "binmode") returns, so if an error is detected in the gzip header the
"open" or "binmode" will fail. However, this will require reading some data, or writing a header. With lazy set on a file opened for
reading the check is deferred until the first read so the "open" should always succeed, but any problems with the header will cause an
error on read.
open FOO, "<:gzip(lazy)", "file.gz" or die $!; # Dangerous.
while (<FOO>) {
print;
} # Whoa. Bad. You're not distinguishing between errors and EOF.
If you're not careful you won't spot the errors - like the example above you'll think you got end of file.
lazy is ignored if you are in autopop mode.
AUTHOR
Nicholas Clark, <nwc10+perlio-gzip@colon.colondot.net>
SEE ALSO
perl, gzip, rfc 1952 <http://www.ietf.org/rfc/rfc1952.txt> (the gzip file format specification), rfc 1951
<http://www.ietf.org/rfc/rfc1951.txt> (DEFLATE compressed data format specification)
perl v5.16.2 2006-10-01 gzip(3)