⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myerror.c

📁 unix环境高级编程的ourhdr.h和出错处理函数头文件
💻 C
字号:
#include <errno.h>              /* for definition of errno */
#include <stdarg.h>             /* ANSI C header file */
#include "ourhdr.h"
 
static void err_doit(int, const char *, va_list);
char *pname = NULL;             /* caller can set this from argv[0] */
 
/* Nonfatal error related to a system call.
   Print a message and return */
 
void
err_ret(const char *fmt, ...)
{
  va_list ap;
  va_start(ap, fmt);
  err_doit(1, fmt, ap);
  va_end(ap);
  return;
}
 
/* Fatal error related to a system call.
 Print a message and terminate. */
 
void
err_sys(const char *fmt, ...)
{
  va_list ap;
  va_start(ap, fmt);
  err_doit(1, fmt, ap);
  va_end(ap);
  exit(1);
}
 
/* Fatal error related to a system call.
   Print a message and terminate. */
 
void
err_dump(const char *fmt, ...)
{
  va_list ap;
 
  va_start(ap, fmt);
  err_doit(1, fmt, ap);
  va_end(ap);
  abort();                      /* dump core and terminate */
  exit(1);                      /* shouldn't get here */
}
 
/* Nonfatal error unrelated to a system call.
   Print a message and return. */
 
void
err_msg(const char *fmt, ...)
{
  va_list ap;
 
  va_stat(ap, fmt);
  err_doit(0, fmt, ap);
  va_end(ap);
  return;
}
 
/* Fatal error unrelated to a system call.
   Print a message and terminate. */
 
void
err_quit(const char *fmt, ...)
{
  va_list ap;
  va_start(ap, fmt);
  err_doit(0, fmt, ap);
  va_end(ap);
  exit(1);
}
 
/* Print a message and return to caller.
   Caller specifies "errnoflag". */
 
static void
err_doit(int errnoflag, const char *fmt, va_list ap)
{
  int errno_save;
  char buf[MAXLINE];
   
  errno_save = errno;           /* value caller might want printed */
  vsprintf(buf, fmt, ap);
  if (errnoflag)
    sprintf (buf+strlen(buf), ": %s", strerror (errno_save));
  strcat (buf, "\n");
  fflush(stdout);               /* in case stdout and stderr are the same */
  fputs(buf, stderr);
  fflush(NULL);                 /* flushes all stdio output streams */
  return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -