ttyname() 原型如下:
[C++] 纯文本查看 复制代码 #include <unistd.h>
char *ttyname(int fd);
如果一个终端在某个文件描述符 fd 上打开,那么函数就返回该描述符对应的终端名,否则返回 NULL 。函数返回的字符串是个静态数据,再次调用函数时将被覆盖。
测试代码:
[C++] 纯文本查看 复制代码 #include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
char *dev_name;
dev_name = ttyname(STDIN_FILENO);
printf ("%s\n", dev_name);
dev_name = ttyname(STDOUT_FILENO);
printf ("%s\n", dev_name);
dev_name = ttyname(STDERR_FILENO);
printf ("%s\n", dev_name);
int fd;
fd = open("/dev/tty", O_RDONLY);
dev_name = ttyname(fd);
printf ("%s\n", dev_name);
return 0;
}
运行输出:./ttyname
/dev/pts/1
/dev/pts/1
/dev/pts/1
/dev/tty |