utils.c (641B)
1 #include "utils.h" 2 3 #include <errno.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <stdarg.h> 7 #include <string.h> 8 9 void 10 panic(const char *fmt, ...) 11 { 12 va_list args; 13 int saved_errno; 14 saved_errno = errno; 15 va_start(args, fmt); 16 fprintf(stderr, "Error: "); 17 vfprintf(stderr, fmt, args); 18 fprintf(stderr, "\n"); 19 va_end(args); 20 if (fmt[0] && fmt[strlen(fmt) - 1] == ':') fprintf(stderr, " %s", strerror(saved_errno)); 21 fputc('\n', stderr); 22 exit(1); 23 } 24 25 void 26 softpanic(const char *fmt, ...) 27 { 28 va_list args; 29 va_start(args, fmt); 30 fprintf(stderr, "Error: "); 31 vfprintf(stderr, fmt, args); 32 fprintf(stderr, "\n"); 33 va_end(args); 34 exit(0); 35 }