* Copyright (c) 1988 The Regents of the University of California.
* %sccs.include.redist.c%
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid
[] = "@(#)ttyname.c 5.6 (Berkeley) %G%";
#endif /* LIBC_SCCS and not lint */
register struct direct
*dirp
;
static char buf
[sizeof(_PATH_DEV
) + MAXNAMLEN
] = _PATH_DEV
;
if (ioctl(fd
, TIOCGETP
, &ttyb
) < 0)
if (fstat(fd
, &sb1
) < 0 || (sb1
.st_mode
&S_IFMT
) != S_IFCHR
)
if ((dp
= opendir(_PATH_DEV
)) == NULL
)
for (rval
= NULL
; dirp
= readdir(dp
);) {
if (dirp
->d_ino
!= sb1
.st_ino
)
(void)strcpy(buf
+ sizeof(_PATH_DEV
) - 1, dirp
->d_name
);
if (stat(buf
, &sb2
) < 0 || sb1
.st_dev
!= sb2
.st_dev
||
sb1
.st_ino
!= sb2
.st_ino
)