2016-03-28 96 views
1

嗨誰能告訴我什麼是參數isatty()在c。 我有以下的代碼,但我不理解所述第一輸出3號將是1和所有的左邊是0C中的isatty()是什麼?

#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; 
} 
+4

閱讀它爲'是一個tty?'。這可能有幫助。 –

+0

也就是說,閱讀* man isatty * - *「isatty()函數測試fd是否是涉及終端的打開文件描述符。」* –

+0

這是一個POSIX函數,而不是C標準庫。 – haccks

回答

4

就讓我們來看看在你的男人頁面將顯示:

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

進一步調查會導致您發現文件描述符0,1和2(又名STDIN_FILENO,STDOUT_FILENO和STDERR_FILENO)按照慣例設置爲當您的程序從終端運行時指向您的終端。

+0

謝謝!你能告訴我如何找到哪裏找到每個int所指的文件描述符? – Hao9000

+0

沒有一個標準的方法。 –

+0

謝謝!湯姆! – Hao9000

1

它告訴文件描述符是否連接到一個終端或沒有。

你可以閱讀更多關於它在這裏:http://linux.die.net/man/3/isatty

+0

不,它測試它是否是一個涉及終端的開放文件描述符。 –

0

檢查ref

isatty - 測試文件描述符是否指的是終端

3

isatty()是一個函數,如果fd - (文件描述符)引用終端,則返回1

它來將#include下

#include<unistd.h> 
+1

它以什麼方式不回答問題(只要它不比其他一些答案顯着更差) –

0

但什麼是()?由isatty拍攝參數的含義是」

的參數是一個索引標準I/O庫的文件描述符表。索引0,1和2保留爲stdin,stdoutstderr。所有其他索引都是指您可以/已經打開的文件描述符。