什么是C中的isatty()?

Hao*_*000 3 c linux

嗨,任何人都可以告诉我c中isatty()的参数是什么.我有以下代码,但我不明白第一个输出三个数字是1,所有左边是0.

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
        for(int i=0;i<100;i++){
                int t=isatty(i);
                printf("%d",t);
        }
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*ner 8

快速查看您的手册页将显示:

DESCRIPTION
     The isatty() function tests whether  fildes,  an  open  file
     descriptor, is associated with a terminal device.
Run Code Online (Sandbox Code Playgroud)

进一步的调查将引导您发现文件描述符0,1和2(也就是STDIN_FILENO,STDOUT_FILENO和STDERR_FILENO)按照惯例设置为在程序从终端运行时指向终端.

  • 手册页可能是最好的答案。如果您的输出重定向到文件,则 STDOUT_FILENO 指的是文件。这不是终端。 (2认同)

Sum*_*kar 5

isatty()是一个函数,1如果 fd -(文件描述符)引用终端,则返回。

它位于#include 下

#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)

  • 它以什么方式不回答这个问题(就其不比这里的其他一些答案明显更差而言) (3认同)