标签: c
到目前为止,我知道如果文件名参数(fname)为空,程序会自动读取stdin。
fname
stdin
if (!strcmp(fname, "")) fin = stdin;
但是我需要知道stdin是管道输入还是互动,因为我可能会得到类似的东西:
rsm: reading from (stdin) ^Z rsm:(stdin):1: not an attribute: `√┘2ç∩'
如果使用了交互式输入。我可以使用某种库函数吗?
答案 0 :(得分:4)
在Posix系统上,您可以使用isatty:
isatty
#include <stdio.h> #include <unistd.h> if (isatty(STDIN_FILENO)) { // interactive stdin }
在Windows上,您可以使用相应的功能_isatty。
_isatty