#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
void verrmsg(int errnum, const char *fmt, va_list va)
{
if (fmt)
vfprintf(stderr, fmt, va);
if (errnum != 0)
fprintf(stderr, ": %s", strerror(errnum));
putc(' ', stderr);
}
void errmsg(int exitcode, int errnum, const char *fmt, ...)
{
va_list va;
va_start(va, fmt);
verrmsg(errnum, fmt, va);
va_end(va);
exit(exitcode);
}
int main (void)
{
FILE *fp;
const char *filename = "d:\\notexistingfile.txt";
if ((fp = fopen(filename, "r")) == NULL)
errmsg(EXIT_FAILURE, errno, "cannot open %s", filename);
return 0;
}
/*
run:
cannot open d:\notexistingfile.txt: No such file or directory
*/