Skip to content
Snippets Groups Projects
error.c 882 B
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <errno.h>
    #include "error.h"
    
    char *pname;
    
    void
    Warning(char *fmt, ...)
    {
        va_list args;
    
        fprintf(stderr, "%s: WARNING: ", pname);
    
        va_start(args, fmt);
        vfprintf(stderr, fmt, args);
        va_end(args);
    
        fprintf(stderr, "\n");
    }
    
    void
    Error(char *fmt, ...)
    {
        va_list args;
    
        fprintf(stderr, "%s: ERROR: ", pname);
    
        va_start(args, fmt);
        vfprintf(stderr, fmt, args);
        va_end(args);
    
        fprintf(stderr, "\n");
    
        exit(1);
    }
    
    void
    Perror(char *fmt, ...)
    {
        va_list args;
        int e = errno;
        char *p;
    
        fprintf(stderr, "%s: ERROR: ", pname);
    
        va_start(args, fmt);
        vfprintf(stderr, fmt, args);
        va_end(args);
    
        if ((p = strerror(e)) == NULL || *p == '\0')
    	fprintf(stderr, ": Unknown Error (%d)\n", e);
        else
    	fprintf(stderr, ": %s\n", p);
    
        exit(1);
    }