【问题标题】:How can I detect that a command completed its output in a tty?如何检测命令在 tty 中完成了其输出?
【发布时间】:2011-07-06 10:48:28
【问题描述】:

我正在研究移动终端的代码,它是 iPhone 的命令行。 这些项目模拟 VT100 终端。 我可以监视通过终端的所有内容(ascii 和控制字符) 但我不知道终端如何知道命令完成了它的输出。如何 终端是否知道何时再次显示提示?是否有特殊控制 每个命令在结束时发送的字符?

【问题讨论】:

    标签: iphone terminal redirect prompt tty


    【解决方案1】:

    在我看来,您好像在终端中运行 shell,因为 VT100 不显示提示 (AFAIK)。

    shell 创建一个子进程并在那里执行命令。然后,shell 只是等待这个子进程完成,然后再次打印它的提示符。

    一个例外是当命令在后台运行时 (some_command &),shell 不会等待子进程退出并立即再次打印提示。

    【讨论】:

    • 是的,很抱歉,确实有一个 shell 与终端相关联。所以你认为这只是过程相关?问题是我不确定我是否可以跟踪进程何时结束,因为它是由 shell 线程启动的。我控制外壳线程,但不控制它的子线程。我会检查它的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多