isatty()总是从eshell(emacs)返回1

时间:2016-06-02 14:24:04

标签: c++ stdin gnu

为什么isatty在使用emacs时从未发现我的程序正在使用重定向的stdin?这是我的代码:

int val = isatty(STDIN_FILENO);
std::cout << val << std::endl;

如果我从eshell(emacs)启动我的程序:./a.out它将返回1,如果我启动ls | ./a.out,它也将返回1.

为什么会这样?哪个条件触发了这个?从python启动它(使用POPEN(shell = True))是安全的吗?

详情: 从isatty()的联机帮助页:isatty - 测试文件描述符是否引用终端。 http://linux.die.net/man/3/isatty

0 个答案:

没有答案