函数名:isatty
头文件:<io.h>
函数原型: int isatty(int handle);
功能: 检查给定的设备类型
参数:int handle 为要检查的设备文件句柄
返回值: 普通文件 返回0 ,设备 返回-1
补充:
常用设备名:
- stdin 标准输入设备 键盘
- stdout 标准输出设备 显示器
- stderr 标准错误设备
- stdaux 辅助设备
- stdprn 打印机
实例
使用该函数判断设备和普通文件,并输出提示
#include<stdio.h>
#include<fcntl.h>
#include <zconf.h>
int main(void){
int fd=fileno(stdout); //获取标准输出设备的文件号
if(isatty(fd)){ //判断是设备文件还是普通文件
printf("%d is device",fd);
}else{
printf("%d is file",fd);
}
putchar('\n');
close(fd);
return 0;
}
测试文件是否连接到终端
#include <stdio.h>
#include <unistd.h>
int isatty(int fd);
int main(int argc, char *argv[]) {
printf("isatty : %d \n", isatty(STDIN_FILENO));
return 0;
}
a.out 的 stdin 來自 terminal,所以 isatty(STDIN_FILENO) 為 1
$ ./a.out
isatty : 1
a.out 的 stdin 是來自 pipe,不是來自 terminal,所以 isatty(STDIN_FILENO) 為 0
$ echo "123" | ./a.out
isatty : 0