Re:Why I Program in Erlang
by lukego on Tuesday October 30, 2012 @04:20AM
(#4716577)
Right. This is like the POSIX features writev() and 'struct iovec'. Essentially all of Erlang's binary output primitives are happy to take an iolist/iovec instead of a plain string and this means fewer concatenations and/or system calls. Good feature.
[ Parent
| on HN ]
iolists map nicely to gather-write writev(),
but unfortunately there is no Erlang primitives for scatter-read readv()
This isn't entirely true, see file:pread/2 for how to do it with a file. We lack a binary:pread/2 though :)
thanks for pointing it out,
looks like it will not work with sockets though.
Also spec says that it will return list of either strings or binaries, not exactly iolist.
> Also spec says that it will return list of either strings or binaries, not exactly iolist.
It's a proper subset of iolists, since it reads from flat data (a file) there isn't much sense in its adding arbitrary amounts of nesting to it.