stdin和控制台和键盘输入是否相同

时间:2010-12-27 07:26:21

标签: c stdin

在C中stdin和控制台和键盘输入是否相同?

3 个答案:

答案 0 :(得分:2)

来自isatty(3)手册页:

  

isatty()函数测试fd是否是引用终端的打开文件描述符。

   #include <unistd.h>

   int isatty(int fd);
  如果fd是指向终端的打开文件描述符,则

isatty()返回1;否则返回0,并设置errno以指示错误。

因此,isatty(stdin)如果被输入则返回非零值,如果被重定向则返回零。

答案 1 :(得分:1)

是的,这是正确的。实际上,您可以使用read()系统调用来接受来自stdin的输入。

答案 2 :(得分:1)

不一定。 stdin可以从文件(例如executable < input)或其他一些非交互设备重定向。

amphetamachine的答案为您提供了区分的工具。