Scheme 恢复对封闭输入描述符进程的控制
在scm(scheme解释器)中进行一些测试时,我特意关闭了当前输入端口(相当于标准输入文件描述符)。一旦程序在REPL中工作,事情就变得疯狂,系统地打印错误消息。我的问题是:我如何恢复进程的控制,也就是说,我如何重新建立这样的进程的输入文件描述符 搜索“更改正在运行的进程的文件描述符”或类似内容,我找不到有用的文章 提前谢谢Scheme 恢复对封闭输入描述符进程的控制,scheme,file-descriptor,io-redirection,Scheme,File Descriptor,Io Redirection,在scm(scheme解释器)中进行一些测试时,我特意关闭了当前输入端口(相当于标准输入文件描述符)。一旦程序在REPL中工作,事情就变得疯狂,系统地打印错误消息。我的问题是:我如何恢复进程的控制,也就是说,我如何重新建立这样的进程的输入文件描述符 搜索“更改正在运行的进程的文件描述符”或类似内容,我找不到有用的文章 提前谢谢 系统信息:Debian 10。您几乎肯定不能,尽管这稍微取决于语言级端口如何映射到底层操作系统级I/O系统 如果您所做的是关闭操作系统级标准输入,则所有内容都将丢失: R
系统信息:Debian 10。您几乎肯定不能,尽管这稍微取决于语言级端口如何映射到底层操作系统级I/O系统 如果您所做的是关闭操作系统级标准输入,则所有内容都将丢失:
- 或者您已经在代码周围包装了一个错误处理程序,该代码已经准备好处理这个问题李>
- 或者,该实现足够聪明,能够识别出它在其闭端口错误处理程序中遇到了闭端口错误,并以某种聪明的方式放弃
*标准输入*
*错误输出*
,*查询io*
,*终端io*
和其他流,并且很可能处于这样的情况,例如,*标准输入*
已关闭,导致读取错误,但是,*查询io*
仍然指向某个末端有人的地方
我不知道scm是否会这样做。为什么关闭当前输入端口?这不是你通常会做的事。如果我明白你的意思,解决这个问题的最好办法就是避免这种显然毫无意义的情况,对吗?我同意这不是平常的事。但这不是重点。关键是如何恢复对流程的控制(即,不终止流程并再次打开)。您通常无法重新打开流程的标准输入–当然没有跨平台解决方案。(关键是关闭
当前输入端口是一个需要删除的bug,而不是解决的bug。)我不认为关闭当前输入端口是一个独立于情况的bug。无论如何,你的答案是相关的。谢谢。终于有了一些强有力的想法。谢谢!