4.4BSD snapshot (revision 8.1)
[unix-history] / usr / src / usr.bin / gcore / util.c
CommitLineData
40d79fdc
SM
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
23static char *program_name;
24
25static char *
26stripdir(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
36setprog(cp)
37 char *cp;
38{
39 program_name = stripdir(cp);
40}
41
42void
43usage()
44{
45 fprintf(stderr, "usage: %s [ -c core ] executable pid\n",
46 program_name);
47 exit(1);
48}
49
50/* VARARGS */
51void
52error(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 */
74void
75warning(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}