Thanks for sharing the code. However, after running the function on any command like `ls` or `date`, the function only returns two #<eof>. I got an #<eof> too with this code:
(define (test-read) (let* ((p (open-input-pipe "ls")) (str (read-delimited "" p))) (close-port p) str)) (test-read) I'm now almost positive this might be a Mac OS-related bug. On Tue, Oct 10, 2023 at 3:41 AM Zelphir Kaltstahl < zelphirkaltst...@posteo.de> wrote: > On 10/10/23 02:49, Panisuan Chasinga wrote: > > Hi list, I want to read a string output using > `ice-9/popen/open-input-pipe` > > but somehow always got an empty string. Here is my test code: > > > > > > (use-modules (ice-9 popen)) > > (use-modules (ice-9 textual-ports)) > > > > (define (test-read-port) > > (let* ((port (open-input-pipe "ls")) > > (str (get-string-all p))) > > (close-port p) > > str)) > > > > > > I was able to read from a file with `open-input-file`, but not > > `open-input-pipe` with any command. Running `(system "ls")` seemed to > work > > just fine. > > Hello Panisuan, > > perhaps this code can help you as well: > > https://notabug.org/ZelphirKaltstahl/guile-examples/src/22bf7be3ae46a7b520c1482ab80985bfbdae6eb6/input-output/stdout-stderr.scm > > It handles also error output. > > Best regards, > Zelphir > > -- > repositories: https://notabug.org/ZelphirKaltstahl > >