1 Star 0 Fork 0

open-fish / rrdlite

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rrd_error.c 9.45 KB
一键复制 编辑 原始数据 按行查看 历史
影子 提交于 2022-01-14 14:51 . fix
/*****************************************************************************
* RRDtool 1.4.9 Copyright by Tobi Oetiker, 1997-2014
*****************************************************************************
* rrd_error.c Common Header File
*****************************************************************************
* $Id$
* $Log$
* Revision 1.4 2003/02/22 21:57:03 oetiker
* a patch to avoid a memory leak and a Makefile.am patch to
* distribute all required source files -- Peter Stamfest <peter@stamfest.at>
*
* Revision 1.3 2003/02/13 07:05:27 oetiker
* Find attached the patch I promised to send to you. Please note that there
* are three new source files (src/rrd_is_thread_safe.h, src/rrd_thread_safe.c
* and src/rrd_not_thread_safe.c) and the introduction of librrd_th. This
* library is identical to librrd, but it contains support code for per-thread
* global variables currently used for error information only. This is similar
* to how errno per-thread variables are implemented. librrd_th must be linked
* alongside of libpthred
*
* There is also a new file "THREADS", holding some documentation.
*
* -- Peter Stamfest <peter@stamfest.at>
*
* Revision 1.2 2002/02/01 20:34:49 oetiker
* fixed version number and date/time
*
* Revision 1.1.1.1 2001/02/25 22:25:05 oetiker
* checkin
*
* changed by yubo@yubo.org
*
*************************************************************************** */
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include "rrd_error.h"
char const *rrd_err_text[RRD_ERR_NUM] = {
"allocating error", /* RRD_ERR_ALLOC */
"Invalid DS name", /* RRD_ERR_INVALID_DS_NAME */
"Invalid DS type", /* RRD_ERR_INVALID_DS_TYPE */
"Duplicate DS name", /* RRD_ERR_DUPLICATE_DS_NAME */
"Invalid DS format", /* RRD_ERR_INVALID_DS_FORMAT */
"Invalid DS type specified", /* RRD_ERR_INVALID_DS_TYPE_SPEC */
"creating rrd error", /* RRD_ERR_CREATE_WRITE */
"Failed to parse CF name", /* RRD_ERR_FAILED_PARSE_CF_NAME */
"Unrecognized consolidation function", /* RRD_ERR_UNREC_CONSOLIDATION_FUNC */
"Invalid row count", /* RRD_ERR_INVALID_ROW_COUNT */
"Invalid xff: must be between 0 and 1", /* RRD_ERR_INVALID_XFF */
"Invalid alpha: must be between 0 and 1", /* RRD_ERR_INVALID_ALPHA */
"Invalid gamma: must be between 0 and 1", /* RRD_ERR_INVALID_GAMMA */
"Failure threshold is out of range 1, 28", /* RRD_ERR_FAILURE_THRESHOLD_OUT_OF_RANGE */
"Invalid step: must be >= 1", /* RRD_ERR_INVALID_STEP */
"Invalid beta: must be between 0 and 1", /* RRD_ERR_INVALID_BETA */
"Window length is out of range 1, 28", /* RRD_ERR_WIN_LEN_OUT_OF_RANGE */
"Window length is shorter than the failure threshold", /* RRD_ERR_WINLEN_SHORTER_FAILURE_THRESHOLD */
"Unexpected extra argument for consolidation function DEVPREDICT", /* RRD_ERR_INVALID_ARG1 */
"The time spanned by the database is too large: must be <= 4294967296 seconds", /* RRD_ERR_TIME_TOO_LARGE */
"Invalid smoothing-window : must be between 0 and 1", /* RRD_ERR_INVALID_SMOOTHING_WINDOW */
"Invalid option", /* RRD_ERR_INVALID_OPT */
"Length of seasonal cycle exceeds length of HW prediction array", /* RRD_ERR_LEN_OF_SEASONAL_CYCLE */
"Unexpected extra argument for consolidation function", /* RRD_ERR_INVALID_ARG2 */
"Unknown error", /* RRD_ERR_UNKNOWN_ERROR */
"Expected at least xxx arguments for RRA but got ooo", /* RRD_ERR_ARG3 */
"creating contingent RRA", /* RRD_ERR_CREATING_RRA */
"can't parse argument", /* RRD_ERR_ARG4 */
"you must define at least one Round Robin Archive", /* RRD_ERR_ARG5 */
"you must define at least one Data Source", /* RRD_ERR_ARG6 */
"min must be less than max in DS definition", /* RRD_ERR_ARG7 */
"failed to parse data source ??", /* RRD_ERR_ARG8 */
"rrd_open() creating file error", /* RRD_ERR_CREATE_FILE1 */
"malloc fetch ds_namv array", /* RRD_ERR_MALLOC1 */
"malloc fetch ds_namv entry", /* RRD_ERR_MALLOC2 */
"the RRD does not contain an RRA matching the chosen CF", /* RRD_ERR_NO_MATCH_RRA */
"malloc fetch data area", /* RRD_ERR_MALLOC3 */
"seek error in RRA", /* RRD_ERR_SEEK_RRA */
"wrap seek in RRA did fail", /* RRD_ERR_SEEK_RRA1 */
"fetching cdp from rra", /* RRD_ERR_FETCH_CDP */
"unknown data source name", /* RRD_ERR_UNKNOWN_DS_NAME */
"memory allocation failure: seasonal coef", /* RRD_ERR_MALLOC4 */
"read operation failed in lookup_seasonal()", /* RRD_ERR_READ1 */
"seek operation failed in lookup_seasonal()", /* RRD_ERR_SEEK1 */
"apply smoother: memory allocation failure", /* RRD_ERR_MALLOC5 */
"seek to rra failed", /* RRD_ERR_SEEK2 */
"reading value failed: ??", /* RRD_ERR_READ2 */
"apply smoother: SEASONAL rra doesn't have valid dependency", /* RRD_ERR_DEP1 */
"apply_smoother: seek to cdp_prep failed", /* RRD_ERR_SEEK3 */
"apply_smoother: cdp_prep write failed", /* RRD_ERR_WRITE1 */
"apply_smoother: seek to pos ?? failed", /* RRD_ERR_SEEK4 */
"apply_smoother: write failed to xxx", /* RRD_ERR_WRITE2 */
"reached EOF while loading header ", /* RRD_ERR_READ3 */
"rrd_read() malloc error", /* RRD_ERR_MALLOC6 */
"short read while reading header ", /* RRD_ERR_READ4 */
"allocating rrd_file descriptor for 'xxx'", /* RRD_ERR_MALLOC7 */
"allocating rrd_simple_file for 'xxx'", /* RRD_ERR_MALLOC8 */
"in read/write request mask", /* RRD_ERR_IO1 */
"opening error", /* RRD_ERR_OPEN_FILE */
"fstat error", /* RRD_ERR_STAT_FILE */
"write error", /* RRD_ERR_WRITE5 */
"mmap error", /* RRD_ERR_MMAP */
"This file is not an RRD file", /* RRD_ERR_FILE */
"This RRD was created on another architecture", /* RRD_ERR_FILE1 */
"can't handle RRD file version", /* RRD_ERR_FILE2 */
"live_head_t malloc", /* RRD_ERR_MALLOC9 */
"file is too small (should be ?? bytes)", /* RRD_ERR_FILE3 */
"msync rrd_file error", /* RRD_ERR_MSYNC */
"munmap rrd_file error", /* RRD_ERR_MUNMAP */
"closing rrd_file error", /* RRD_ERR_CLOSE */
"attempting to write beyond end of file", /* RRD_ERR_WRITE6 */
"update process_arg error", /* RRD_ERR_ARG9 */
"write changes to disk error", /* RRD_ERR_WRITE7 */
"Not enough arguments", /* RRD_ERR_ARG10 */
"could not lock RRD", /* RRD_ERR_LOCK */
"failed duplication argv entry", /* RRD_ERR_FAILED_STRDUP */
"allocating updvals pointer array.", /* RRD_ERR_MALLOC10 */
"allocating pdp_temp.", /* RRD_ERR_MALLOC11 */
"allocating skip_update.", /* RRD_ERR_MALLOC12 */
"allocating tmpl_idx.", /* RRD_ERR_MALLOC13 */
"allocating rra_step_cnt.", /* RRD_ERR_MALLOC14 */
"allocating pdp_new.", /* RRD_ERR_MALLOC15 */
"parse template error", /* RRD_ERR_PARSE */
"error copying tmplt ", /* RRD_ERR_FAILED_STRDUP1 */
"tmplt contains more DS definitions than RRD", /* RRD_ERR_MORE_DS */
"unknown DS name ", /* RRD_ERR_UNKNOWN_DS_NAME1 */
"expected timestamp not found in data source from ??", /* RRD_ERR_STR */
"found extra data on update argument: ??", /* RRD_ERR_ARG11 */
"expected ?? data source readings (got ??) from ??", /* RRD_ERR_EXPECTED */
"ds time: ??: ??", /* RRD_ERR_TIME1 */
"specifying time relative to the 'start' or 'end' makes no sense here: ??", /* RRD_ERR_TIME2 */
"strtod error: converting ?? to float: ??", /* RRD_ERR_STRTOD */
"illegal attempt to update using time ?? when last update time is ?? (minimum one second step)", /* RRD_ERR_TIME3 */
"not a simple ?? integer: '??'", /* RRD_ERR_INT */
"conversion of '??' to float not complete: tail '??'", /* RRD_ERR_DATA */
"rrd contains unknown DS type : '??'", /* RRD_ERR_UNKNOWN_DS_TYPE */
"seek error in rrd", /* RRD_ERR_SEEK5 */
"writing rrd: ??", /* RRD_ERR_WRITE8 */
"seek rrd for live header writeback", /* RRD_ERR_SEEK6 */
"rrd_write live_head to rrd", /* RRD_ERR_WRITE9 */
"rrd_write pdp_prep to rrd", /* RRD_ERR_WRITE10 */
"rrd_write cdp_prep to rrd", /* RRD_ERR_WRITE11 */
"rrd_write rra_ptr to rrd", /* RRD_ERR_WRITE12 */
"the start and end times cannot be specified relative to each other", /* RRD_ERR_TIME4 */
"the start time cannot be specified relative to itself", /* RRD_ERR_TIME5 */
"the end time cannot be specified relative to itself", /* RRD_ERR_TIME6 */
"failed to alloc memory in addop2str", /* RRD_ERR_MALLOC16 */
"failed to parse computed data source", /* RRD_ERR_PARSE1 */
"operators TIME, LTIME, PREV COUNT TREND TRENDNAN PREDICT PREDICTSIGMA are not supported with DS COMPUTE", /* RRD_ERR_DS */
"don't undestand expr", /* RRD_ERR_EXPR */
"RPN stack overflow", /* RRD_ERR_STACK */
"RPN stack underflow", /* RRD_ERR_STACK1 */
"VDEF made it into rpn_calc... aborting", /* RRD_ERR_ABORT */
"negative shift step not allowed: ??", /* RRD_ERR_ALLOW */
"malformed trend arguments", /* RRD_ERR_ARG12 */
"RPN final stack size != 1", /* RRD_ERR_STACK2 */
"Maximum ?? RPN nodes permitted. Got ?? RPN nodes at present.", /* RRD_ERR_DATA1 */
"constants must be integers in the interval (??, ??)", /* RRD_ERR_DATA2 */
"failed allocating rpnp array", /* RRD_ERR_MALLOC17 */
"unknown data acquisition function '??'", /* RRD_ERR_UNKNOWN_DATA */
"update_cdp_prep error", /* RRD_ERR_UPDATE_CDP */
"variable '??' not found", /* RRD_ERR_UNKNOWN_DATA1 */
};
const char *rrd_strerror(int err) {
int e;
e = abs(err);
if(e == 0){
return NULL;
}else{
if (e >= RRD_ERR_START && e <= RRD_ERR_END){
#ifdef DEBUG
printf("errno: 0x%04x, str:%s\n", e, rrd_err_text[e-RRD_ERR_START]);
printf("sys errno: %d, strerror:%s\n", errno, strerror(errno));
#endif
return rrd_err_text[e-RRD_ERR_START];
}else{
#ifdef DEBUG
printf("errno: 0x%04x, str:%s\n", e, rrd_err_text[RRD_ERR_UNKNOWN_ERROR-RRD_ERR_START]);
printf("sys errno: %d, strerror:%s\n", errno, strerror(errno));
#endif
return rrd_err_text[RRD_ERR_UNKNOWN_ERROR-RRD_ERR_START];
}
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/open-fish/rrdlite.git
git@gitee.com:open-fish/rrdlite.git
open-fish
rrdlite
rrdlite
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891