Steffen Nurpmeso <stef...@sdaoden.eu> wrote:

>  |$ bash ../mk/make-rules.sh su/*.c
>  |(...previous lines omitted...)
>  |su-018.o: $(SU_SRCDIR)su/utf.cawk: su/utf.c makes too many open files
>  | input record number 18, file
>  | source line number 74
> 
> Ah!  Of course, i had totally forgotten about this!  The Apple awk
> leaks file descriptors, 

Maybe rather your *script* is leaking the file descriptors.  I see you
are are merrily opening new files through

        po_i = getline < farr[no]

without ever closing them again, so they accumulate.

I suggest to add the close into the EOF check following right after
the getline:

        if(po_i == 0) {
            close(farr[no]
            break
        }

(I grew up on unix systems with the "20 open files per process" limit,
so I quickly got into the habit of properly closing my files again
in awk, too.)

                                                        Martin

Reply via email to