Если у вас есть шанс, наберите
#include <stdio.h>
#include <stdarg.h>
char errprintf_called = 0;
int errprintf(const char * fmt, ...)
{
errprintf_called = 1;
va_list ap;
va_start(ap, fmt);
int ret = vfprintf(stderr, ap);
va_end(ap);
return ret;
}
и используйте
errprintf("Error %d has occured!", 42);
if (errprintf_called) {
whine();
} else {
laugh();
}