Die utility - terminate C program with error message and exit code
#pragma once
#ifndef UTIL_H
#define UTIL_H
#include <stdio.h>
#include <stdlib.h>
void vsfdie(FILE *stream, int code, const char *format, va_list arg);
void sfdie(FILE * stream, int code, const char *format, ...);
void sdie(int code, const char *format, ...);
void die(const char *format, ...);
static inline void vsdie(int code, const char *format, va_list arg) {
vsfdie(stderr, code, format, arg);
};
static inline void vfdie(FILE *stream, const char *format, va_list arg) {
vsfdie(stream, EXIT_FAILURE, format, arg);
}
static inline void vdie(const char *format, va_list arg) {
vsdie(EXIT_FAILURE, format, arg);
}
#endif
#include <stdarg.h>
#include "util.h"
void vsfdie(FILE * stream, int code, const char *format, va_list arg) {
vfprintf(stream, format, arg);
va_end(arg);
exit(code);
}
void sfdie(FILE * stream, int code, const char *format, ...) {
va_list args;
va_start(args, format);
vsfdie(stream, code, format, args);
}
void sdie(int code, const char *format, ...) {
va_list args;
va_start(args, format);
vsfdie(stderr, code, format, args);
}
void fdie(FILE *stream, const char *format, ...) {
va_list args;
va_start(args, format);
vfdie(stream, format, args);
}
void die(const char *format, ...) {
va_list args;
va_start(args, format);
vdie(format, args);
}