[comp.os.msdos.programmer] Gnu-awk

barron@desci.wharton.upenn.edu (Daniel Barron) (01/14/91)

Hi!  Sorry if any of the above are inappropriate groups, please excuse.

I'm writing a Gnu-awk (gawk) script on an IBM XT with MSDOS 3.3.
It's designed to massage data from one program's output to another's
input.  Problem is, each time a line is processed, about 10-15K of
memory gets used (checked via system( "chkdsk" ) ).  After 25-30 lines
I get

xalloc: no memory!

Help!  What could make my program gobble memory?  A bad function call?
I have three small functions, but I think things are ok.  I'm using
split() a lot, if that rings any bells...I really can't think why this
is happening, but I need to fix it fast!

An earlier, less complicated version of the program doesn't act like
this.  Memory drops by about 15K after one line, but then remains
exactly the same.  This is how I thought it should act.

Any help appreciated: please E-mail barron@wharton.upenn.edu or
                                    barron@dacth01.bitnet

Thanks in advance,

Dan Barron

-- 
_______________________________Daniel Barron__________________________________
                                     | E-mail: barron@scrolls.wharton.upenn.edu
"Hunger only for a taste of justice. |         barron@wharton.upenn.edu        
 Hunger only for a word of truth."   |         barron@rm105serve.sas.upenn.edu

stanley@phoenix.com (John Stanley) (01/15/91)

barron@desci.wharton.upenn.edu (Daniel Barron) writes:

> I'm writing a Gnu-awk (gawk) script on an IBM XT with MSDOS 3.3.
> It's designed to massage data from one program's output to another's
> input.  Problem is, each time a line is processed, about 10-15K of
> memory gets used (checked via system( "chkdsk" ) ).  After 25-30 lines
> I get
> 
> xalloc: no memory!
> 
> Help!  What could make my program gobble memory?  A bad function call?

   I ran into this, too. It looks like any piping (|) done in the
scripts gets buffered internally in awk, and it runs out of memory. When
I changed the design to "print >> file" then have DOS "dos-command <<
file" it cleared up. 

   Since there is a file involved in both cases, it really isn't a problem
to create one.