BSD 2 release
[unix-history] / upgrade / libretro / ttyn.c
#include <retrofit.h>
#include <sys/types.h>
#include <sys/stat.h>
/*
* Discover the teletype letter of the passed file
* descriptor. C library.
*/
#define BLKSIZE 32 /* Directory entries per disk block */
ttyn(tty)
{
struct dirent {
int d_ino;
char d_name[14];
};
struct dirent buf[BLKSIZE];
struct stat sbuf;
register int fi, inum;
register struct dirent *dp;
if (fstat(tty, &sbuf) < 0)
return('x');
fi = open("/dev", 0);
if (fi < 0)
return('x');
inum = sbuf.st_ino;
while (read(fi, &buf, sizeof buf) > 0)
for (dp = &buf[0]; dp < &buf[BLKSIZE]; dp++)
if (dp->d_ino == inum) {
close(fi);
return(dp->d_name[3]);
}
close(fi);
return('x');
}