【发布时间】:2021-10-15 02:26:30
【问题描述】:
最近我一直在尝试用c实现一个作业控制shell,我得到了上述问题。
当我输入一个命令时,它会在前台执行,同时在它完成之前我无法对终端做任何事情,换句话说,它控制着终端。
回到问题,gnu 文档给出了一个展示,它测试 stdin_fileno 是否是一个 tty。以下是我的问题:
- 这是否意味着当一个进程在前台运行时,它也在控制终端?如果不是,有什么区别?
- Stdin fileno 无论如何都是一个微型文件。为什么进程之间会有所不同?
【问题讨论】:
-
“可能有一组进程在前台运行”。能给我举个例子吗?我认为这是不可能的。
-
不知道在Linux中是不是也是这样,但是在Windows中每个进程都可以打开一个单独的终端/控制台窗口。
-
控制终端是什么意思?
-
@Charles Duffy 这就是我的观点。控制台与该进程相关联。
-
这些术语都在Posix standard Base Definitions 中定义。 General Terminal Interface 的描述中还有很多有用的信息。