err(0, fname); return;
ierr(); return (1);
rlines(fp, off, sbp)	FILE *fp;	long off;	struct stat *sbp;{	register off_t size;	register char *p;	char *start;	if (!(size = sbp->st_size))		return;	if (size > SIZE_T_MAX) {		errx(0, "%s: %s", fname, strerror(EFBIG));		return;	}	if ((start = mmap(NULL, (size_t)size,	    PROT_READ, 0, fileno(fp), (off_t)0)) == (caddr_t)-1) {		errx(0, "%s: %s", fname, strerror(EFBIG));		return;	}	/* Last char is special, ignore whether newline or not. */	for (p = start + size - 1; --size;)		if (*--p == '\n' && !--off) {			++p;			break;		}	/* Set the file pointer to reflect the length displayed. */	size = sbp->st_size - size;	WR(p, size);	if (fseek(fp, (long)sbp->st_size, SEEK_SET) == -1) {		ierr();		return;	}	if (munmap(start, (size_t)sbp->st_size)) {		err(0, fname);		return;	}}