我正在尝试将控制台应用程序包装到像我一样的合成环境中,尽管多路复用器会这样做。但我注意到mc
使用 S-Lang 库编写的(午夜指挥官)之类的应用程序即使stdin
未连接到 TTY 也能够获得部分键盘状态。例如,cat /dev/zero|/usr/bin/mc
完全不影响应用程序的可操作性。
我试图了解 mc 在 tmux 中是如何工作的,但我找不到这三个组件(mc、tmux 和 slang)的代码中发生魔法的地方。
问题是我如何以编程方式启动一个应用程序,mc
以便我能够通过文件描述符与它进行交互,而实际的标准输入对于该应用程序根本不可用?