将外部调用的输出捕获为字符串(在Chez Scheme中)



使用Chez Scheme,我试图将外部命令的输出捕获到字符串端口中(请参阅https://www.scheme.com/csug8/io.html):

(define output 
(with-output-to-string (lambda () (system "ls -a")))
)

(system "ls -a")的输出显示在屏幕上,output为空(在Linux上使用chezscheme 9.5.4作为脚本进行测试(。

Racket 8.3[CS]也可以使用相同的代码。

(define output
(get-string-all (car (process "ls -a"))))

似乎适用于MacOS

以下内容适用于Linux上的Chez Scheme 9.5.8。

(define (capture-standard-output command)
(let-values ([(in out err pid) (open-process-ports command 'block
(make-transcoder (utf-8-codec)))])
(get-string-all out)))

(capture-standard-output "ls -a")  ;; => ".n..nbarnfoon"

相关内容

  • 没有找到相关文章

最新更新