ttyname.c

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 49 行

C
49
字号
/* @(#)ttyname.c	4.3 (Berkeley) 5/7/82 *//* * ttyname(f): return "/dev/ttyXX" which the the name of the * tty belonging to file f. *  NULL if it is not a tty */#define	NULL	0#include <sys/param.h>#include <sys/dir.h>#include <sys/stat.h>static	char	dev[]	= "/dev/";char	*strcpy();char	*strcat();char *ttyname(f){	struct stat fsb;	struct stat tsb;	register struct direct *db;	register DIR *df;	static char rbuf[32];	if (isatty(f)==0)		return(NULL);	if (fstat(f, &fsb) < 0)		return(NULL);	if ((fsb.st_mode&S_IFMT) != S_IFCHR)		return(NULL);	if ((df = opendir(dev)) == NULL)		return(NULL);	while ((db = readdir(df)) != NULL) {		if (db->d_ino != fsb.st_ino)			continue;		strcpy(rbuf, dev);		strcat(rbuf, db->d_name);		if (stat(rbuf, &tsb) < 0)			continue;		if (tsb.st_dev == fsb.st_dev && tsb.st_ino == fsb.st_ino) {			closedir(df);			return(rbuf);		}	}	closedir(df);	return(NULL);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?