xref: /original-bsd/usr.bin/gcore/util.c (revision 84651319)
1 /*-
2  * Copyright (c) 1992 Regents of the University of California.
3  * All rights reserved.
4  *
5  * This software was developed by the Computer Systems Engineering group
6  * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
7  * contributed to Berkeley.
8  *
9  * %sccs.include.redist.c%
10  */
11 
12 #include <stdio.h>
13 #ifdef __STDC__
14 #include <stdlib.h>
15 #endif
16 #include <sys/types.h>
17 #include <sys/time.h>
18 #include <ctype.h>
19 #include <varargs.h>
20 #include <sys/file.h>
21 #include <sys/stat.h>
22 
23 static char *program_name;
24 
25 static char *
26 stripdir(s)
27 	register char *s;
28 {
29 	register char *cp;
30 	char *rindex();
31 
32 	cp = rindex(s, '/');
33 	return (cp != 0) ? cp + 1 : s;
34 }
35 
36 setprog(cp)
37 	char *cp;
38 {
39 	program_name = stripdir(cp);
40 }
41 
42 void
43 usage()
44 {
45 	fprintf(stderr, "usage: %s [ -c core ] executable pid\n",
46 		program_name);
47 	exit(1);
48 }
49 
50 /* VARARGS */
51 void
52 error(va_alist)
53 	va_dcl
54 {
55 	register char *cp;
56 	va_list ap;
57 
58 	(void)fprintf(stderr, "%s: ", stripdir(program_name));
59 
60 	va_start(ap);
61 	cp = va_arg(ap, char *);
62 	(void)vfprintf(stderr, cp, ap);
63 	va_end(ap);
64 	if (*cp) {
65 		cp += strlen(cp);
66 		if (cp[-1] != '\n')
67 			(void)fputc('\n', stderr);
68 	}
69 	exit(1);
70 	/* NOTREACHED */
71 }
72 
73 /* VARARGS */
74 void
75 warning(va_alist)
76 	va_dcl
77 {
78 	register char *cp;
79 	va_list ap;
80 
81 	(void)fprintf(stderr, "%s: warning: ", stripdir(program_name));
82 
83 	va_start(ap);
84 	cp = va_arg(ap, char *);
85 	(void)vfprintf(stderr, cp, ap);
86 	va_end(ap);
87 	if (*cp) {
88 		cp += strlen(cp);
89 		if (cp[-1] != '\n')
90 			(void)fputc('\n', stderr);
91 	}
92 }
93