DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦9b14998c6⟧ TextFile

    Length: 816 (0x330)
    Types: TextFile
    Notes: UNIX file
    Names: »ttyslot.c«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦f4b8d8c84⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »libc/gen/ttyslot.c« 

TextFile

/*
 * Coherent I/O Library.
 * Return the number of the entry in the
 * `/etc/ttys' file which tells init
 * which terminals need a login (`/etc/getty')
 * process for them.  Slot 0, is returned
 * on error.
 * [Note: the controlling terminal of the process
 * is taken to be stderr].
 */

#include <stdio.h>

char	*ttyname();

ttyslot()
{
	register char *p1, *p2;
	register char *tname;
	register FILE *ttyf;
	register int slot = 0;
	register int mslot;
	char ttyl[32];

	if ((tname = ttyname(fileno(stderr))) != NULL
	    && (ttyf = fopen("/etc/ttys", "r")) == NULL) {
		tname += 5;		/* Skip over "/dev/" */
		for (mslot=0; fgets(ttyl, sizeof (ttyl), ttyf)!=NULL; mslot++) {
			for (p1=ttyl+2, p2=tname; *p1 == *p2++; )
				if (*p1=='\0' || *p1++=='\n')
					slot = mslot;
		}
		fclose(ttyf);
	}
	return (slot);
}