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

📄 error.c

📁 一个用来实现偏微分方程中网格的计算库
💻 C
字号:
/* *	Copyright 1993, University Corporation for Atmospheric Research *      See netcdf/COPYRIGHT file for copying and redistribution conditions. *//* $Id: error.c,v 1.14 90/02/23 16:08:55 davis Exp *//*LINTLIBRARY*/#include <config.h>#include <stdio.h>#include <stdarg.h>#include <stdlib.h>/* If netcdf-4 is in use, rename all nc_ functions to nc3_ functions. */#ifdef USE_NETCDF4#include <netcdf3.h>#include <nc3convert.h>#else#include "netcdf.h"#endif#ifdef HAVE_STRERROR#include <string.h> /* contains prototype for ansi libc function strerror() */#else/* provide a strerror function for older unix systems */static char *strerror(int errnum){    extern int sys_nerr;    extern char *sys_errlist[];    if(errnum < 0 || errnum >= sys_nerr) return NULL;    /* else */    return sys_errlist[errnum];}#endif /* NO_STRERROR */#ifdef vms/* UNTESTED *//* * On the vms system, when a system error occurs which is not * mapped into the unix styled errno values, errno is set EVMSERR * and a VMS error code is set in vaxc$errno. * This routine prints the systems message associated with status return * from a system services call. */#include <errno.h>#include <descrip.h>#include <ssdef.h>static const char *vms_strerror( int status ){	short msglen;	static char msgbuf[256];	$DESCRIPTOR(message, msgbuf);	register ret;	msgbuf[0] = 0;	ret = SYS$GETMSG(status, &msglen, &message, 15, 0);		if(ret != SS$_BUFFEROVF && ret != SS$_NORMAL) {		(void) strcpy(msgbuf, "EVMSERR");	}	return(msgbuf);}#endif /* vms */static char unknown[] = "Unknown Error";const char *nc_strerror(int err){#ifdef vms 	if(err == EVMSERR)	{		return vms_strerror(err);	}		/* else */#endif /* vms */	if(NC_ISSYSERR(err))	{		const char *cp = (const char *) strerror(err);		if(cp == NULL)			return unknown;		/* else */		return cp;	}	/* else */	switch (err) {	case NC_NOERR:	    return "No error";	case NC_EBADID:	    return "NetCDF: Not a valid ID";	case NC_ENFILE:	    return "NetCDF: Too many files open";	case NC_EEXIST:	    return "NetCDF: File exists && NC_NOCLOBBER";	case NC_EINVAL:	    return "NetCDF: Invalid argument";	case NC_EPERM:	    return "NetCDF: Write to read only";	case NC_ENOTINDEFINE:	    return "NetCDF: Operation not allowed in data mode";	case NC_EINDEFINE:	    return "NetCDF: Operation not allowed in define mode";	case NC_EINVALCOORDS:	    return "NetCDF: Index exceeds dimension bound";	case NC_EMAXDIMS:	    return "NetCDF: NC_MAX_DIMS exceeded";	case NC_ENAMEINUSE:	    return "NetCDF: String match to name in use";	case NC_ENOTATT:	    return "NetCDF: Attribute not found";	case NC_EMAXATTS:	    return "NetCDF: NC_MAX_ATTRS exceeded";	case NC_EBADTYPE:	    return "NetCDF: Not a valid data type or _FillValue type mismatch";	case NC_EBADDIM:	    return "NetCDF: Invalid dimension ID or name";	case NC_EUNLIMPOS:	    return "NetCDF: NC_UNLIMITED in the wrong index";	case NC_EMAXVARS:	    return "NetCDF: NC_MAX_VARS exceeded";	case NC_ENOTVAR:	    return "NetCDF: Variable not found";	case NC_EGLOBAL:	    return "NetCDF: Action prohibited on NC_GLOBAL varid";	case NC_ENOTNC:	    return "NetCDF: Unknown file format";	case NC_ESTS:	    return "NetCDF: In Fortran, string too short";	case NC_EMAXNAME:	    return "NetCDF: NC_MAX_NAME exceeded";	case NC_EUNLIMIT:	    return "NetCDF: NC_UNLIMITED size already in use";	case NC_ENORECVARS:	    return "NetCDF: nc_rec op when there are no record vars";	case NC_ECHAR:	    return "NetCDF: Attempt to convert between text & numbers";	case NC_EEDGE:	    return "NetCDF: Start+count exceeds dimension bound";	case NC_ESTRIDE:	    return "NetCDF: Illegal stride";	case NC_EBADNAME:	    return "NetCDF: Name contains illegal characters";	case NC_ERANGE:	    return "NetCDF: Numeric conversion not representable";	case NC_ENOMEM:	    return "NetCDF: Memory allocation (malloc) failure";	case NC_EVARSIZE:	    return "NetCDF: One or more variable sizes violate format constraints";	case NC_EDIMSIZE:	    return "NetCDF: Invalid dimension size";	case NC_ETRUNC:	    return "NetCDF: File likely truncated or possibly corrupted";	}	/* default */	return unknown;}

⌨️ 快捷键说明

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