errno = 0;
func = signal(sig, func);
if (func == SIG_ERR || errno > 0)
- fatal("failed to register signal handler for signal %d", sig);
+ fatal("signal(%d, %p) failed:", sig, func);
}
/* Raise a signal. On failure, print a fatal error. */
static int eraise(int sig) {
int ret;
if ((ret = raise(sig)) != 0)
- fatal("failed to raise signal %d", sig);
+ fatal("raise(%d) failed:", sig);
return ret;
}
static void* ecalloc(size_t num, size_t size) {
void* ret;
if (NULL == (ret = calloc(num,size)))
- fatal("out of memory");
+ fatal("calloc(%zu, %zu) failed:", num, size);
return ret;
}
static void* emalloc(size_t size) {
void* ret;
if (NULL == (ret = malloc(size)))
- fatal("out of memory");
+ fatal("malloc(%zu) failed:", size);
return ret;
}
static void* erealloc(void* ptr, size_t size) {
void* ret;
if (NULL == (ret = realloc(ptr,size)))
- fatal("out of memory");
+ fatal("realloc(%p, %zu) failed:", ptr, size);
return ret;
}
FILE* file;
errno = 0;
if (NULL == (file = fopen(filename, mode)) || errno != 0)
- fatal("failed to open file: %s", filename);
+ fatal("fopen(%s, %s) failed:", filename, mode);
return file;
}