检测stdin是终端还是管道?当我python从没有参数的终端执行“ ”时,它会启动Python交互式shell。当我cat | python从终端执行“ ”时,它不会启动交互模式。不知何故,没有得到任何输入,它已检测到它已连接到管道。我如何在C或C ++或Qt中进行类似的检测?
3 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
用途isatty
:
#include <stdio.h>#include <io.h>... if (isatty(fileno(stdin))) printf( "stdin is a terminal\n" );else printf( "stdin is a file or a pipe\n");
(在Windows上,它们以下划线为前缀:_isatty
,_fileno
)
- 3 回答
- 0 关注
- 496 浏览
添加回答
举报
0/150
提交
取消