Shell 我们如何区分程序的输入是直接的还是仅仅是一个用户';使用isatty函数进行输入?

Shell 我们如何区分程序的输入是直接的还是仅仅是一个用户';使用isatty函数进行输入?,shell,input,Shell,Input,我在这个链接上问了一个关于堆栈溢出的类似问题: 这让我想到了这一点: 我们如何区分程序的输入是直接的还是仅仅是用户的输入 有人能给我举一个关于如何使用isatty功能的小例子吗?关于isatty的例子: #include <unistd.h> #include <stdio.h> int main() { if( isatty(STDIN_FILENO) ) puts("Connected to a terminal"); else puts(

我在这个链接上问了一个关于堆栈溢出的类似问题:

这让我想到了这一点:
我们如何区分程序的输入是直接的还是仅仅是用户的输入

有人能给我举一个关于如何使用
isatty
功能的小例子吗?
关于
isatty
的例子:

#include <unistd.h>
#include <stdio.h>

int main()
{
  if( isatty(STDIN_FILENO) )
    puts("Connected to a terminal");
  else
    puts("Not connected to a terminal");

  return 0;
}

再简单不过了

为了完整起见,你应该在你的问题中加上你询问
isatty()
的原因。哇,这很简单:这会解决我的问题,谢谢。顺便问一下,我们所说的“连接到终端”或“未连接到终端”到底是什么意思?!我的意思是,我们什么时候说一个程序连接到一个终端,而什么时候不是呢@严格地说,除非我们使用的是特别旧的硬件,否则它永远不会连接到终端。在大型机普遍存在的年代,真正的终端与计算机是分开的。现在它们只是在软件中实现,这就是
tty
设备的全部内容。更多信息,请看这个Q(这里排名第二的Q!)——我今天学到了很多。感谢@Graeme为您提供宝贵的时间。