ReactOS  0.4.12-dev-57-g7050ac4
err.c
Go to the documentation of this file.
1 /*-
2  * Copyright (c) 1993
3  * The Regents of the University of California. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * 3. All advertising materials mentioning features or use of this software
14  * must display the following acknowledgement:
15  * This product includes software developed by the University of
16  * California, Berkeley and its contributors.
17  * 4. Neither the name of the University nor the names of its contributors
18  * may be used to endorse or promote products derived from this software
19  * without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31  * SUCH DAMAGE.
32  */
33 
34 #include "precomp.h"
35 
36 #if defined(LIBC_SCCS) && !defined(lint)
37 static char sccsid[] = "@(#)err.c 8.1 (Berkeley) 6/4/93";
38 #endif /* LIBC_SCCS and not lint */
39 
40 extern char *__progname; /* Program name, from crt0. */
41 
42 void
43 err(int eval, const char *fmt, ...)
44 {
45  va_list ap;
46  va_start(ap, fmt);
47  verr(eval, fmt, ap);
48  va_end(ap);
49 }
50 
51 void
52 verr(int eval, const char *fmt, va_list ap)
53 {
54  int sverrno;
55 
56  sverrno = errno;
57  (void)fprintf(stderr, "%s: ", __progname);
58  if (fmt != NULL) {
59  (void)vfprintf(stderr, fmt, ap);
60  (void)fprintf(stderr, ": ");
61  }
62  (void)fprintf(stderr, "%s\n", strerror(sverrno));
63  exit(eval);
64 }
65 
66 void
67 errx(int eval, const char *fmt, ...)
68 {
69  va_list ap;
70  va_start(ap, fmt);
71  verrx(eval, fmt, ap);
72  va_end(ap);
73 }
74 
75 void
76 verrx(int eval, const char *fmt, va_list ap)
77 {
78  (void)fprintf(stderr, "%s: ", __progname);
79  if (fmt != NULL)
80  (void)vfprintf(stderr, fmt, ap);
81  (void)fprintf(stderr, "\n");
82  exit(eval);
83 }
84 
85 void
86 warn(const char *fmt, ...)
87 {
88  va_list ap;
89  va_start(ap, fmt);
90  vwarn(fmt, ap);
91  va_end(ap);
92 }
93 
94 void
96  const char *fmt;
97  va_list ap;
98 {
99  int sverrno;
100 
101  sverrno = errno;
102  (void)fprintf(stderr, "%s: ", __progname);
103  if (fmt != NULL) {
104  (void)vfprintf(stderr, fmt, ap);
105  (void)fprintf(stderr, ": ");
106  }
107  (void)fprintf(stderr, "%s\n", strerror(sverrno));
108 }
109 
110 void
111 warnx(const char *fmt, ...)
112 {
113  va_list ap;
114  va_start(ap, fmt);
115  vwarnx(fmt, ap);
116  va_end(ap);
117 }
118 
119 void
121  const char *fmt;
122  va_list ap;
123 {
124  (void)fprintf(stderr, "%s: ", __progname);
125  if (fmt != NULL)
126  (void)vfprintf(stderr, fmt, ap);
127  (void)fprintf(stderr, "\n");
128 }
void errx(int eval, const char *fmt,...)
Definition: err.c:67
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:47
void warnx(const char *fmt,...)
Definition: err.c:111
const char * fmt
Definition: wsprintf.c:30
void vwarn(char *fmt, va_list ap) const
Definition: err.c:95
int errno
const char * strerror(int err)
Definition: compat_str.c:23
void vwarnx(char *fmt, va_list ap) const
Definition: err.c:120
#define va_end(ap)
Definition: acmsvcex.h:90
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
smooth NULL
Definition: ftsmooth.c:416
char * va_list
Definition: acmsvcex.h:78
void err(int eval, const char *fmt,...)
Definition: err.c:43
static char sccsid[]
Definition: cmds.c:27
void verr(int eval, const char *fmt, va_list ap)
Definition: err.c:52
void warn(const char *fmt,...)
Definition: err.c:86
#define va_start(ap, A)
Definition: acmsvcex.h:91
void int int ULONGLONG int va_list * ap
Definition: winesup.h:32
FILE * stderr
void exit(int exitcode)
Definition: _exit.c:33
void verrx(int eval, const char *fmt, va_list ap)
Definition: err.c:76
_Check_return_opt_ _CRTIMP int __cdecl vfprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
Definition: dsound.c:943
char * __progname
Definition: finger.c:63