-
Jan Thorbecke authoredJan Thorbecke authored
verbosepkg.c 1.54 KiB
#include <stdio.h>
#include <stdarg.h>
#include "par.h"
#include <string.h>
#ifdef _CRAYMPP
#include <intrinsics.h>
#endif
/**
* functions to print out verbose, error and warning messages to stderr.
*
* AUTHOR:
* Jan Thorbecke (janth@xs4all.nl)
* The Netherlands
**/
void verr(char *fmt, ...)
{
va_list args;
if (EOF == fflush(stderr)) {
fprintf(stderr, "\nverr: fflush failed on stderr");
}
fprintf(stderr, " Error in %s: ", xargv[0]);
#ifdef _CRAYMPP
fprintf(stderr, "PE %d: ", _my_pe());
#elif defined(SGI)
fprintf(stderr, "PE %d: ", mp_my_threadnum());
#endif
va_start(args,fmt);
vfprintf(stderr, fmt, args);
va_end(args);
fprintf(stderr, "\n");
exit(EXIT_FAILURE);
}
void vwarn(char *fmt, ...)
{
va_list args;
if (EOF == fflush(stderr)) {
fprintf(stderr, "\nvwarn: fflush failed on stderr");
}
fprintf(stderr, " Warning in %s: ", xargv[0]);
#ifdef _CRAYMPP
fprintf(stderr, "PE %d: ", _my_pe());
#elif defined(SGI)
fprintf(stderr, "PE %d: ", mp_my_threadnum());
#endif
va_start(args,fmt);
vfprintf(stderr, fmt, args);
va_end(args);
fprintf(stderr, "\n");
return;
}
void vmess(char *fmt, ...)
{
va_list args;
if (EOF == fflush(stderr)) {
fprintf(stderr, "\nvmess: fflush failed on stderr");
}
fprintf(stderr, " %s: ", xargv[0]);
#ifdef _CRAYMPP
fprintf(stderr, "PE %d: ", _my_pe());
#elif defined(SGI)
fprintf(stderr, "PE %d: ", mp_my_threadnum());
#endif
va_start(args,fmt);
vfprintf(stderr, fmt, args);
va_end(args);
fprintf(stderr, "\n");
return;
}