bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ⎕FIO Buffer limit is 5000 Bytes


From: Blake McBride
Subject: Re: ⎕FIO Buffer limit is 5000 Bytes
Date: Fri, 30 Oct 2020 09:17:27 -0500

On Fri, Oct 30, 2020 at 7:25 AM Kacper Gutowski <mwgamera@gmail.com> wrote:
On Thu, Oct 29, 2020 at 10:22:52PM +0100, Hans-Peter Sorge wrote:
>the return size from ⎕FIO[24] / ⎕FIO[6] is limited to 5000B:
(...)
>Should be: What ever it takes :-)

It's not limited to 5000B, it's just the default size and you can use
any other with dyadic form.  ⎕FIO is fairly low-level and has very few
convenience wrappers like ⎕FIO[26].  Perhaps one doing popen and reading
the whole output like Perl's `` would be in order too, but it definitely
shouldn't be what ⎕FIO[6] does.

You can relatively easily do something like this:

     ∇ bytes←read_to_eof fd ;buf
[1]   bytes←0⍴0
[2]  loop:
[3]  →(⎕FIO['feof'] fd)/0
[4]   buf←⎕FIO['fread'] fd
[5]  →(0≡buf)/loop
[6]   ⎕ES(1≠⍴⍴buf)/⎕FIO['strerror'] buf
[7]   bytes←bytes,buf
[8]  →loop
     ∇

(It could be a one-liner if API were designed a bit better,
but it's still workable.)

I'd like to see your API design proposal.

Thanks!

Blake
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]