On Sun, Nov 15, 2015 at 6:09 AM, Jan Synáček <jan.syna...@gmail.com> wrote: > On Fri, Nov 13, 2015 at 9:45 PM, Thompson, David > <dthomps...@worcester.edu> wrote: >> On Fri, Nov 13, 2015 at 3:41 PM, Jan Synáček <jan.syna...@gmail.com> wrote: >>> >>> I have an open fd to a unix socket and I want to read data from it. I >>> know that the data is going to be only strings, but I don't know the >>> length in advance. The good thing about using read-string!/partial is, >>> that I don't have to specify how many bytes I want to read and it does >>> the right thing. If you point me to a better direction, I'll be >>> grateful. I came up with: >>> >>> (for-each (lambda (fd) >>> (let* ((buf (make-string 4096))) >>> (read-string!/partial buf (fdes->inport fd)) >>> (format #t "fd[~a]: ~a" fd buf) (newline))) >>> fds) >>> >> >> Maybe 'read-string' in (ice-9 rdelim) is what you're after. >> >> - Dave > > For some reason, 'read-string' blocks when I don't specify a small enough > limit.
That's how I/O operations work. 'read-string' blocks until the end of file. Guess I misunderstood what you're after. - Dave