C 标准输入与控制台和键盘输入相同吗

C 标准输入与控制台和键盘输入相同吗,c,stdin,C,Stdin,标准输入与控制台和键盘输入在C语言中是否相同?是的,没错。实际上,您可以通过read()系统调用从stdin接受输入。从手册页: 函数的作用是:测试fd是否是引用终端的打开文件描述符 #包括 int-isatty(int-fd); 如果fd是指向终端的开放文件描述符,则isatty()返回1;否则返回0,并设置errno以指示错误 因此,isatty(stdin)在键入时返回非零,在重定向时返回零。不一定

标准输入与控制台和键盘输入在C语言中是否相同?

是的,没错。实际上,您可以通过read()系统调用从stdin接受输入。

从手册页:

函数的作用是:测试fd是否是引用终端的打开文件描述符

#包括
int-isatty(int-fd);
如果fd是指向终端的开放文件描述符,则isatty()返回1;否则返回0,并设置errno以指示错误


因此,
isatty(stdin)
在键入时返回非零,在重定向时返回零。

不一定<可以从文件(例如,
可执行文件
)或其他非交互式设备重定向code>stdin


安非他明机器的答案为你提供了区别的工具

这意味着stdin和console不一样。isatty()很接近,尽管终端不一定由键盘或用户输入驱动,但是在以编程方式驱动的情况下,程序的行为应该与接收键盘输入的情况类似。
   #include <unistd.h>

   int isatty(int fd);