像vi、less、screen这样的程序在执行时会用它们的数据填充终端,然后,如果您按下c - Z (或终止程序),终端就会返回到执行这些程序之前的状态。
程序通常是如何做到这一点的呢?这类事情的正确术语是什么?
附言:标题中使用的词可能不正确,因为我甚至不知道这类事情的术语。
编辑:感谢@Atropo,我现在知道这些的正确名称是foreground process,但是,一个程序如何做到这一点呢?程序如何清除屏幕,进行编写,并在执行结束时让shell与所有旧代码一起重新出现?
发布于 2013-07-15 22:56:42
它们被称为foreground processes。
通常,前台进程向用户显示一个界面,用户可以通过该界面与程序进行交互。因此,用户必须等待一个前台进程完成后才能运行另一个前台进程。当您使用foreground process时,shell prompt会消失,直到您关闭进程或将其放在后台。
发布于 2013-07-15 23:03:22
默认情况下,CTRL-C生成SIGINT信号和CTRL-Z SIGTSTP:https://en.wikipedia.org/wiki/Unix_signal
要更改行为,您可以:
对于标准输入http://linux.die.net/man/3/termios
https://stackoverflow.com/questions/17657158
复制相似问题