util.c (572B) download
1/* See LICENSE file for copyright and license details. */
2#include <errno.h>
3#include <stdarg.h>
4#include <stdio.h>
5#include <stdlib.h>
6#include <string.h>
7
8#include "util.h"
9
10void
11die(const char *fmt, ...)
12{
13 va_list ap;
14 int saved_errno;
15
16 saved_errno = errno;
17
18 va_start(ap, fmt);
19 vfprintf(stderr, fmt, ap);
20 va_end(ap);
21
22 if (fmt[0] && fmt[strlen(fmt)-1] == ':')
23 fprintf(stderr, " %s", strerror(saved_errno));
24 fputc('\n', stderr);
25
26 exit(1);
27}
28
29void *
30ecalloc(size_t nmemb, size_t size)
31{
32 void *p;
33
34 if (!(p = calloc(nmemb, size)))
35 die("calloc:");
36 return p;
37}