xref: /csrg-svn/usr.bin/tset/misc.c (revision 63080)
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