152053Sbostic /*-
2*63080Sbostic * Copyright (c) 1991, 1993
3*63080Sbostic * The Regents of the University of California. All rights reserved.
452053Sbostic *
552053Sbostic * %sccs.include.redist.c%
652053Sbostic */
752053Sbostic
852053Sbostic #ifndef lint
9*63080Sbostic static char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 06/09/93";
1052053Sbostic #endif /* not lint */
1152053Sbostic
1252053Sbostic #include <fcntl.h>
1352053Sbostic #include <errno.h>
1452053Sbostic #include <unistd.h>
1552053Sbostic #include <stdio.h>
1652053Sbostic #include <stdlib.h>
1752053Sbostic #include <string.h>
1852053Sbostic #include "extern.h"
1952053Sbostic
2052053Sbostic void
cat(file)2152053Sbostic cat(file)
2252053Sbostic char *file;
2352053Sbostic {
2452053Sbostic register int fd, nr, nw;
2552053Sbostic char buf[1024];
2652053Sbostic
2752053Sbostic if ((fd = open(file, O_RDONLY, 0)) < 0)
2852053Sbostic err("%s: %s", file, strerror(errno));
2952053Sbostic
3052053Sbostic while ((nr = read(fd, buf, sizeof(buf))) > 0)
3152053Sbostic if ((nw = write(STDERR_FILENO, buf, nr)) == -1)
3252053Sbostic err("write to stderr: %s", strerror(errno));
3352053Sbostic if (nr != 0)
3452053Sbostic err("%s: %s", file, strerror(errno));
3552053Sbostic (void)close(fd);
3652053Sbostic }
3752053Sbostic
3852053Sbostic void
outc(c)3952053Sbostic outc(c)
4052053Sbostic int c;
4152053Sbostic {
4252053Sbostic (void)putc(c, stderr);
4352053Sbostic }
4452053Sbostic
4552053Sbostic #if __STDC__
4652053Sbostic #include <stdarg.h>
4752053Sbostic #else
4852053Sbostic #include <varargs.h>
4952053Sbostic #endif
5052053Sbostic
5152053Sbostic void
5252053Sbostic #if __STDC__
err(const char * fmt,...)5352053Sbostic err(const char *fmt, ...)
5452053Sbostic #else
5552053Sbostic err(fmt, va_alist)
5652053Sbostic char *fmt;
5752053Sbostic va_dcl
5852053Sbostic #endif
5952053Sbostic {
6052053Sbostic va_list ap;
6152053Sbostic #if __STDC__
6252053Sbostic va_start(ap, fmt);
6352053Sbostic #else
6452053Sbostic va_start(ap);
6552053Sbostic #endif
6652053Sbostic (void)fprintf(stderr, "tset: ");
6752053Sbostic (void)vfprintf(stderr, fmt, ap);
6852053Sbostic va_end(ap);
6952053Sbostic (void)fprintf(stderr, "\n");
7052053Sbostic exit(1);
7152053Sbostic /* NOTREACHED */
7252053Sbostic }
73