【发布时间】:2021-04-27 11:42:38
【问题描述】:
在 scm(一个方案解释器)中做一些测试,我故意关闭了 current-input-port(相当于标准输入文件描述符)。一旦程序在 REPL 中运行,事情就变得疯狂,系统地打印一条错误消息。我的问题是:如何恢复对进程的控制,也就是说,如何重新建立该进程的输入文件描述符?
搜索“更改正在运行的进程的文件描述符”或类似的东西,我找不到有用的文章。
提前致谢
系统信息:Debian 10。
【问题讨论】:
-
为什么关闭
current-input-port?这不是你通常会做的事情。 -
如果我明白你的意思,解决这个问题的最佳方法是避免这种显然毫无意义的情况,对吧?我同意这不是通常的事情。但这不是重点。关键是如何恢复对进程的控制(即不杀死它并再次打开它)。
-
你通常不能重新打开一个进程的标准输入——当然没有跨平台的解决方案。 (重点是,您关闭的
current-input-port是一个需要删除而不是解决的错误。) -
我不相信关闭当前输入端口是独立于情况的错误。无论如何,你的答案是相关的。谢谢。
标签: scheme file-descriptor io-redirection