您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ zbx_strerror函数代码示例

51自学网 2021-06-03 11:55:59
  C++
这篇教程C++ zbx_strerror函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中zbx_strerror函数的典型用法代码示例。如果您正苦于以下问题:C++ zbx_strerror函数的具体用法?C++ zbx_strerror怎么用?C++ zbx_strerror使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了zbx_strerror函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: read_traps

/****************************************************************************** *                                                                            * * Function: read_traps                                                       * *                                                                            * * Purpose: read the traps and then parse them with parse_traps()             * *                                                                            * * Author: Rudolfs Kreicbergs                                                 * *                                                                            * ******************************************************************************/static int	read_traps(){    const char	*__function_name = "read_traps";    int		nbytes = 0;    zabbix_log(LOG_LEVEL_DEBUG, "In %s() lastsize:%d", __function_name, trap_lastsize);    if ((off_t)-1 == lseek(trap_fd, (off_t)trap_lastsize, SEEK_SET))    {        zabbix_log(LOG_LEVEL_WARNING, "cannot set position to %d for /"%s/": %s", trap_lastsize,                   CONFIG_SNMPTRAP_FILE, zbx_strerror(errno));        goto exit;    }    if (-1 == (nbytes = read(trap_fd, buffer + offset, MAX_BUFFER_LEN - offset - 1)))    {        zabbix_log(LOG_LEVEL_WARNING, "cannot read from SNMP trapper file /"%s/": %s", CONFIG_SNMPTRAP_FILE,                   zbx_strerror(errno));        goto exit;    }    if (0 < nbytes)    {        if (INT_MAX < (zbx_uint64_t)trap_lastsize + nbytes)        {            nbytes = 0;            goto exit;        }        buffer[nbytes + offset] = '/0';        trap_lastsize += nbytes;        DBupdate_lastsize();        parse_traps(0);    }exit:    zabbix_log(LOG_LEVEL_DEBUG, "End of %s()", __function_name);    return nbytes;}
开发者ID:dreamsxin,项目名称:zabbix,代码行数:47,


示例2: VM_MEMORY_USED

static int	VM_MEMORY_USED(AGENT_RESULT *result){	struct sysinfo	info;	if (0 != sysinfo(&info))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, (zbx_uint64_t)(info.totalram - info.freeram) * info.mem_unit);	return SYSINFO_RET_OK;}
开发者ID:zabbix,项目名称:zabbix,代码行数:14,


示例3: SYSTEM_SW_ARCH

int	SYSTEM_SW_ARCH(AGENT_REQUEST *request, AGENT_RESULT *result){	struct utsname	name;	if (-1 == uname(&name))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_STR_RESULT(result, zbx_strdup(NULL, name.machine));	return SYSINFO_RET_OK;}
开发者ID:HenryGeek,项目名称:auto_deploy,代码行数:14,


示例4: read_traps

/****************************************************************************** *                                                                            * * Function: read_traps                                                       * *                                                                            * * Purpose: read the traps and then parse them with parse_traps()             * *                                                                            * * Author: Rudolfs Kreicbergs                                                 * *                                                                            * ******************************************************************************/static void	read_traps(){	const char	*__function_name = "read_traps";	int		nbytes;	char		buffer[MAX_BUFFER_LEN];	zabbix_log(LOG_LEVEL_DEBUG, "In %s() lastsize:%d", __function_name, trap_lastsize);	*buffer = '/0';	if ((off_t)-1 == lseek(trap_fd, (off_t)trap_lastsize, SEEK_SET))	{		zabbix_log(LOG_LEVEL_WARNING, "cannot set position to [%d] for [%s]: %s",				trap_lastsize, CONFIG_SNMPTRAP_FILE, zbx_strerror(errno));		goto exit;	}	if (-1 == (nbytes = read(trap_fd, buffer, sizeof(buffer) - 1)))	{		zabbix_log(LOG_LEVEL_WARNING, "cannot read from [%s]: %s",				CONFIG_SNMPTRAP_FILE, zbx_strerror(errno));		goto exit;	}	if (0 < nbytes)	{		buffer[nbytes] = '/0';		zbx_rtrim(buffer + MAX(nbytes - 3, 0), " /r/n");		trap_lastsize += nbytes;		DBupdate_lastsize();		parse_traps(buffer);	}exit:	zabbix_log(LOG_LEVEL_DEBUG, "End of %s()", __function_name);}
开发者ID:felixleong,项目名称:zabbix,代码行数:46,


示例5: SYSTEM_SWAP_SIZE

int	SYSTEM_SWAP_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result){#ifdef HAVE_LIBPERFSTAT	perfstat_memory_total_t	mem;	char			*swapdev, *mode;	if (2 < request->nparam)	{		SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters."));		return SYSINFO_RET_FAIL;	}	swapdev = get_rparam(request, 0);	mode = get_rparam(request, 1);	if (NULL != swapdev && '/0' != *swapdev && 0 != strcmp(swapdev, "all"))	{		SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid first parameter."));		return SYSINFO_RET_FAIL;	}	if (1 != perfstat_memory_total(NULL, &mem, sizeof(perfstat_memory_total_t), 1))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	if (NULL == mode || '/0' == *mode || 0 == strcmp(mode, "free"))		SET_UI64_RESULT(result, mem.pgsp_free << ZBX_PERFSTAT_PAGE_SHIFT);	else if (0 == strcmp(mode, "total"))		SET_UI64_RESULT(result, mem.pgsp_total << ZBX_PERFSTAT_PAGE_SHIFT);	else if (0 == strcmp(mode, "used"))		SET_UI64_RESULT(result, (mem.pgsp_total - mem.pgsp_free) << ZBX_PERFSTAT_PAGE_SHIFT);	else if (0 == strcmp(mode, "pfree"))		SET_DBL_RESULT(result, mem.pgsp_total ? 100.0 * (mem.pgsp_free / (double)mem.pgsp_total) : 0.0);	else if (0 == strcmp(mode, "pused"))		SET_DBL_RESULT(result, mem.pgsp_total ? 100.0 - 100.0 * (mem.pgsp_free / (double)mem.pgsp_total) : 0.0);	else	{		SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid second parameter."));		return SYSINFO_RET_FAIL;	}	return SYSINFO_RET_OK;#else	SET_MSG_RESULT(result, zbx_strdup(NULL, "Agent was compiled without support for Perfstat API."));	return SYSINFO_RET_FAIL;#endif}
开发者ID:zabbix,项目名称:zabbix,代码行数:49,


示例6: SYSTEM_UNAME

int	SYSTEM_UNAME(AGENT_REQUEST *request, AGENT_RESULT *result){	struct utsname	name;	if (-1 == uname(&name))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_STR_RESULT(result, zbx_dsprintf(NULL, "%s %s %s %s %s %s", name.sysname, name.nodename, name.release,			name.version, name.machine, name.idnumber));	return SYSINFO_RET_OK;}
开发者ID:HupuInc,项目名称:zabbix,代码行数:15,


示例7: KERNEL_MAXPROC

int	KERNEL_MAXPROC(AGENT_REQUEST *request, AGENT_RESULT *result){	int	mib[] = {CTL_KERN, KERN_MAXPROC}, maxproc;	size_t	len = sizeof(maxproc);	if (0 != sysctl(mib, 2, &maxproc, &len, NULL, 0))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, maxproc);	return SYSINFO_RET_OK;}
开发者ID:HupuInc,项目名称:zabbix,代码行数:15,


示例8: free_collector_data

/****************************************************************************** *                                                                            * * Function: free_collector_data                                              * *                                                                            * * Purpose: Free memory allocated for collector                               * *                                                                            * * Author: Eugene Grigorjev                                                   * *                                                                            * * Comments: Unix version allocated memory as shared.                         * *                                                                            * ******************************************************************************/void	free_collector_data(){#ifdef _WINDOWS	zbx_free(collector);#else	if (NULL == collector)		return;	if (NONEXISTENT_SHMID != collector->diskstat_shmid)	{		if (-1 == shmctl(collector->diskstat_shmid, IPC_RMID, 0))			zabbix_log(LOG_LEVEL_WARNING, "cannot remove shared memory for disk statistics collector: %s",					zbx_strerror(errno));		diskdevices = NULL;		collector->diskstat_shmid = NONEXISTENT_SHMID;	}	if (-1 == shmctl(shm_id, IPC_RMID, 0))		zabbix_log(LOG_LEVEL_WARNING, "cannot remove shared memory for collector: %s", zbx_strerror(errno));	zbx_mutex_destroy(&diskstats_lock);#endif	collector = NULL;}
开发者ID:diegolima,项目名称:zabbix-uglibc-mips,代码行数:35,


示例9: php_sem_remove

int	php_sem_remove(PHP_MUTEX *sem_ptr){	const char	*__function_name = "php_sem_remove";	union semun	un;	struct semid_ds	buf;	struct sembuf	sop[2];	int		opcnt = 1;	assert(sem_ptr);	if (-1 == sem_ptr->semid)		return PHP_MUTEX_OK;	/* Decrement the usage count. */	sop[0].sem_num = SYSVSEM_USAGE;	sop[0].sem_op = -1;	sop[0].sem_flg = SEM_UNDO;	if (sem_ptr->count)	{		sop[1].sem_num = SYSVSEM_SEM;		sop[1].sem_op = sem_ptr->count;		sop[1].sem_flg = SEM_UNDO;		opcnt++;	}	if (-1 == semop(sem_ptr->semid, sop, opcnt))	{		zbx_error("%s(): failed for (id %d): %s", __function_name, sem_ptr->semid, zbx_strerror(errno));		return PHP_MUTEX_ERROR;	}	un.buf = &buf;	if (-1 == semctl(sem_ptr->semid, 0, IPC_STAT, un))	{		zbx_error("%s(): SysV semaphore (id %d) does not (any longer) exist", __function_name, sem_ptr->semid);		return PHP_MUTEX_ERROR;	}	if (-1 == semctl(sem_ptr->semid, 0, IPC_RMID, un))		return PHP_MUTEX_ERROR;	sem_ptr->semid = -1;	return PHP_MUTEX_OK;}
开发者ID:diegolima,项目名称:zabbix-uglibc-mips,代码行数:48,


示例10: SYSTEM_UPTIME

int	SYSTEM_UPTIME(AGENT_REQUEST *request, AGENT_RESULT *result){	struct sysinfo	info;	ZBX_UNUSED(request);	if (0 != sysinfo(&info))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, info.uptime);	return SYSINFO_RET_OK;}
开发者ID:zabbix,项目名称:zabbix,代码行数:16,


示例11: VM_MEMORY_SHARED

static int	VM_MEMORY_SHARED(AGENT_RESULT *result){	struct vmtotal	vm;	size_t		len = sizeof(vm);	int		mib[] = {CTL_VM, VM_METER};	if (0 != sysctl(mib, 2, &vm, &len, NULL, 0))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, (zbx_uint64_t)(vm.t_vmshr + vm.t_rmshr) * pagesize);	return SYSINFO_RET_OK;}
开发者ID:SDUATI,项目名称:Zabbix2.4.X,代码行数:16,


示例12: user1_signal_handler

/****************************************************************************** *                                                                            * * Function: user1_signal_handler                                             * *                                                                            * * Purpose: handle user signal SIGUSR1                                        * *                                                                            * ******************************************************************************/static void	user1_signal_handler(int sig, siginfo_t *siginfo, void *context){	SIG_CHECK_PARAMS(sig, siginfo, context);	zabbix_log(LOG_LEVEL_DEBUG, "Got signal [signal:%d(%s),sender_pid:%d,sender_uid:%d,value_int:%d].",			sig, get_signal_name(sig),			SIG_CHECKED_FIELD(siginfo, si_pid),			SIG_CHECKED_FIELD(siginfo, si_uid),			SIG_CHECKED_FIELD(siginfo, si_value.ZBX_SIVAL_INT));#ifdef HAVE_SIGQUEUE	if (!SIG_PARENT_PROCESS)	{		extern void	zbx_sigusr_handler(zbx_task_t task);		zbx_sigusr_handler(SIG_CHECKED_FIELD(siginfo, si_value.ZBX_SIVAL_INT));	}	else if (ZBX_TASK_CONFIG_CACHE_RELOAD == SIG_CHECKED_FIELD(siginfo, si_value.ZBX_SIVAL_INT))	{		extern unsigned char	daemon_type;		if (0 != (daemon_type & ZBX_DAEMON_TYPE_PROXY_PASSIVE))		{			zabbix_log(LOG_LEVEL_WARNING, "forced reloading of the configuration cache"					" cannot be performed for a passive proxy");		}		else		{			union sigval	s;			extern pid_t	*threads;			s.ZBX_SIVAL_INT = ZBX_TASK_CONFIG_CACHE_RELOAD;			/* threads[0] is configuration syncer (it is set in proxy.c and server.c) */			if (NULL != threads && -1 != sigqueue(threads[0], SIGUSR1, s))			{				zabbix_log(LOG_LEVEL_DEBUG, "the signal is redirected to"						" the configuration syncer");			}			else			{				zabbix_log(LOG_LEVEL_ERR, "failed to redirect signal: %s",						zbx_strerror(errno));			}		}	}#endif}
开发者ID:Metalaria,项目名称:Zabbix_,代码行数:54,


示例13: zbx_mem_destroy

void	zbx_mem_destroy(zbx_mem_info_t *info){	const char	*__function_name = "zbx_mem_destroy";	zabbix_log(LOG_LEVEL_DEBUG, "In %s() descr:'%s'", __function_name, info->mem_descr);	if (info->use_lock)		zbx_mutex_destroy(&info->mem_lock);	if (-1 == shmctl(info->shm_id, IPC_RMID, 0))	{		zabbix_log(LOG_LEVEL_WARNING, "cannot remove shared memory for %s: %s",				info->mem_descr, zbx_strerror(errno));	}	zabbix_log(LOG_LEVEL_DEBUG, "End of %s()", __function_name);}
开发者ID:Metalaria,项目名称:Zabbix_,代码行数:17,


示例14: read_pid_file

int	read_pid_file(const char *pidfile, pid_t *pid, char *error, size_t max_error_len){	int	ret = FAIL;	FILE	*fpid;	if (NULL == (fpid = fopen(pidfile, "r")))	{		zbx_snprintf(error, max_error_len, "cannot open PID file [%s]: %s", pidfile, zbx_strerror(errno));		return ret;	}	if (1 == fscanf(fpid, "%d", (int *)pid))		ret = SUCCEED;	zbx_fclose(fpid);	return ret;}
开发者ID:Metalaria,项目名称:Zabbix_,代码行数:18,


示例15: SYSTEM_CPU_INTR

int     SYSTEM_CPU_INTR(AGENT_REQUEST *request, AGENT_RESULT *result){#ifdef HAVE_LIBPERFSTAT	perfstat_cpu_total_t	ps_cpu_total;	if (-1 == perfstat_cpu_total(NULL, &ps_cpu_total, sizeof(ps_cpu_total), 1))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, (zbx_uint64_t)ps_cpu_total.devintrs);	return SYSINFO_RET_OK;#else	SET_MSG_RESULT(result, zbx_strdup(NULL, "Agent was compiled without support for Perfstat API."));	return SYSINFO_RET_FAIL;#endif}
开发者ID:HenryGeek,项目名称:auto_deploy,代码行数:19,


示例16: VM_MEMORY_SHARED

static int	VM_MEMORY_SHARED(AGENT_RESULT *result){#ifdef KERNEL_2_4	struct sysinfo	info;	if (0 != sysinfo(&info))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, (zbx_uint64_t)info.sharedram * info.mem_unit);	return SYSINFO_RET_OK;#else	SET_MSG_RESULT(result, zbx_strdup(NULL, "Supported for Linux 2.4 only."));	return SYSINFO_RET_FAIL;#endif}
开发者ID:zabbix,项目名称:zabbix,代码行数:19,


示例17: get_fs_size_stat

static int	get_fs_size_stat(const char *fs, zbx_uint64_t *total, zbx_uint64_t *free,		zbx_uint64_t *used, double *pfree, double *pused, char **error){#ifdef HAVE_SYS_STATVFS_H#	define ZBX_STATFS	statvfs#	define ZBX_BSIZE	f_frsize#else#	define ZBX_STATFS	statfs#	define ZBX_BSIZE	f_bsize#endif	struct ZBX_STATFS	s;	if (0 != ZBX_STATFS(fs, &s))	{		*error = zbx_dsprintf(NULL, "Cannot obtain filesystem information: %s", zbx_strerror(errno));		return SYSINFO_RET_FAIL;	}	if (total)		*total = (zbx_uint64_t)s.f_blocks * s.ZBX_BSIZE;	if (free)		*free = (zbx_uint64_t)s.f_bavail * s.ZBX_BSIZE;	if (used)		*used = (zbx_uint64_t)(s.f_blocks - s.f_bfree) * s.ZBX_BSIZE;	if (pfree)	{		if (0 != s.f_blocks - s.f_bfree + s.f_bavail)			*pfree = (double)(100.0 * s.f_bavail) /					(s.f_blocks - s.f_bfree + s.f_bavail);		else			*pfree = 0;	}	if (pused)	{		if (0 != s.f_blocks - s.f_bfree + s.f_bavail)			*pused = 100.0 - (double)(100.0 * s.f_bavail) /					(s.f_blocks - s.f_bfree + s.f_bavail);		else			*pused = 0;	}	return SYSINFO_RET_OK;}
开发者ID:HupuInc,项目名称:zabbix,代码行数:43,


示例18: get_swap_io

static int	get_swap_io(zbx_uint64_t *icount, zbx_uint64_t *ipages, zbx_uint64_t *ocount, zbx_uint64_t *opages,		char **error){	int		mib[2];	size_t		len;	struct uvmexp	v;	mib[0] = CTL_VM;	mib[1] = VM_UVMEXP;	len = sizeof(v);	if (0 != sysctl(mib, 2, &v, &len, NULL, 0))	{		*error = zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno));		return SYSINFO_RET_FAIL;	}	/* int swapins;		swapins */	/* int swapouts;	swapouts */	/* int pgswapin;	pages swapped in */	/* int pgswapout;	pages swapped out */#if OpenBSD < 201311		/* swapins and swapouts are not supported starting from OpenBSD 5.4 */	if (NULL != icount)		*icount = (zbx_uint64_t)v.swapins;	if (NULL != ocount)		*ocount = (zbx_uint64_t)v.swapouts;#else	if (NULL != icount || NULL != ocount)	{		*error = zbx_dsprintf(NULL, "Not supported by the system starting from OpenBSD 5.4.");		return SYSINFO_RET_FAIL;	}#endif	if (NULL != ipages)		*ipages = (zbx_uint64_t)v.pgswapin;	if (NULL != opages)		*opages = (zbx_uint64_t)v.pgswapout;	return SYSINFO_RET_OK;}
开发者ID:HupuInc,项目名称:zabbix,代码行数:42,


示例19: NET_IF_DISCOVERY

int	NET_IF_DISCOVERY(AGENT_REQUEST *request, AGENT_RESULT *result){	char		line[MAX_STRING_LEN], *p;	FILE		*f;	struct zbx_json	j;	if (NULL == (f = fopen("/proc/net/dev", "r")))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot open /proc/net/dev: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	zbx_json_init(&j, ZBX_JSON_STAT_BUF_LEN);	zbx_json_addarray(&j, ZBX_PROTO_TAG_DATA);	while (NULL != fgets(line, sizeof(line), f))	{		if (NULL == (p = strstr(line, ":")))			continue;		*p = '/0';		/* trim left spaces */		for (p = line; ' ' == *p && '/0' != *p; p++)			;		zbx_json_addobject(&j, NULL);		zbx_json_addstring(&j, "{#IFNAME}", p, ZBX_JSON_TYPE_STRING);		zbx_json_close(&j);	}	zbx_fclose(f);	zbx_json_close(&j);	SET_STR_RESULT(result, strdup(j.buffer));	zbx_json_free(&j);	return SYSINFO_RET_OK;}
开发者ID:HupuInc,项目名称:zabbix,代码行数:42,


示例20: VM_MEMORY_PUSED

static int	VM_MEMORY_PUSED(AGENT_RESULT *result){	struct sysinfo	info;	if (0 != sysinfo(&info))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	if (0 == info.totalram)	{		SET_MSG_RESULT(result, zbx_strdup(NULL, "Cannot calculate percentage because total is zero."));		return SYSINFO_RET_FAIL;	}	SET_DBL_RESULT(result, (info.totalram - info.freeram) / (double)info.totalram * 100);	return SYSINFO_RET_OK;}
开发者ID:zabbix,项目名称:zabbix,代码行数:20,


示例21: SYSTEM_CPU_INTR

int	SYSTEM_CPU_INTR(AGENT_REQUEST *request, AGENT_RESULT *result){	kstat_ctl_t	*kc;	kstat_t		*k;	cpu_stat_t	*cpu;	int		cpu_count = 0;	double		intr_count = 0.0;	if (NULL == (kc = kstat_open()))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot open kernel statistics facility: %s",				zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	k = kc->kc_chain;	while (NULL != k)	{		if (0 == strncmp(k->ks_name, "cpu_stat", 8) && -1 != kstat_read(kc, k, NULL))		{			cpu = (cpu_stat_t *)k->ks_data;			intr_count += (double)cpu->cpu_sysinfo.intr;			cpu_count += 1;		}		k = k->ks_next;	}	kstat_close(kc);	if (0 == cpu_count)	{		SET_MSG_RESULT(result, zbx_strdup(NULL, "Cannot find CPU information."));		return SYSINFO_RET_FAIL;	}	SET_UI64_RESULT(result, intr_count);	return SYSINFO_RET_OK;}
开发者ID:SDUATI,项目名称:Zabbix2.4.X,代码行数:41,


示例22: VM_MEMORY_PAVAILABLE

static int	VM_MEMORY_PAVAILABLE(AGENT_RESULT *result){	struct sysinfo	info;	AGENT_RESULT	result_tmp;	zbx_uint64_t	available, total;	int		ret = SYSINFO_RET_FAIL;	if (0 != sysinfo(&info))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	init_result(&result_tmp);	ret = VM_MEMORY_AVAILABLE(&result_tmp);	if (SYSINFO_RET_FAIL == ret)	{		SET_MSG_RESULT(result, zbx_strdup(NULL, result_tmp.msg));		goto clean;	}	available = result_tmp.ui64;	total = (zbx_uint64_t)info.totalram * info.mem_unit;	if (0 == total)	{		SET_MSG_RESULT(result, zbx_strdup(NULL, "Cannot calculate percentage because total is zero."));		ret = SYSINFO_RET_FAIL;		goto clean;	}	SET_DBL_RESULT(result, available / (double)total * 100);clean:	free_result(&result_tmp);	return ret;}
开发者ID:zabbix,项目名称:zabbix,代码行数:39,


示例23: MAIN_ZABBIX_ENTRY

/****************************************************************************** *                                                                            * * Function:                                                                  * *                                                                            * * Purpose:                                                                   * *                                                                            * * Parameters:                                                                * *                                                                            * * Return value:                                                              * *                                                                            * * Comments:                                                                  * *                                                                            * ******************************************************************************/int MAIN_ZABBIX_ENTRY(){    zbx_thread_args_t *thread_args;    int               thread_num = 0;    int               status;    if (NULL == CONFIG_LOG_FILE || '/0' == *CONFIG_LOG_FILE) {        zabbix_open_log(LOG_TYPE_SYSLOG, CONFIG_LOG_LEVEL, NULL);    }    else {        zabbix_open_log(LOG_TYPE_FILE, CONFIG_LOG_LEVEL, CONFIG_LOG_FILE);    }    zabbix_log(LOG_LEVEL_INFORMATION, "Starting Job Arranger monitor. Job Arranger %s (revision %s).",               JOBARG_VERSION, JOBARG_REVISION);    /* --- START THREADS --- */    threads_num = 1;    threads     = (ZBX_THREAD_HANDLE *) zbx_calloc(threads, threads_num, sizeof(ZBX_THREAD_HANDLE));    /* start the executive thread */    thread_args             = (zbx_thread_args_t *) zbx_malloc(NULL, sizeof(zbx_thread_args_t));    thread_args->thread_num = thread_num;    thread_args->args       = NULL;    threads[thread_num++]   = zbx_thread_start(monitor_thread, thread_args);    while (-1 == wait(&status)) {        if (EINTR != errno) {            zabbix_log(LOG_LEVEL_ERR, "failed to wait on child processes: %s", zbx_strerror(errno));            break;        }    }    THIS_SHOULD_NEVER_HAPPEN;    zbx_on_exit();    return SUCCEED;}
开发者ID:mastering-jaz,项目名称:jobarranger,代码行数:50,


示例24: get_latest_data

/****************************************************************************** *                                                                            * * Function: get_latest_data                                                  * *                                                                            * * Purpose: Open the latest trap file. If the current file has been rotated,  * *          process that and then open the latest file.                       * *                                                                            * * Return value: SUCCEED - there are new traps to be parsed                   * *               FAIL - there are no new traps or trap file does not exist    * *                                                                            * * Author: Rudolfs Kreicbergs                                                 * *                                                                            * ******************************************************************************/static int	get_latest_data(){	struct stat	file_buf;	if (-1 != trap_fd)	/* a trap file is already open */	{		if (0 != stat(CONFIG_SNMPTRAP_FILE, &file_buf))		{			/* file might have been renamed or deleted, process the current file */			if (ENOENT != errno)			{				zabbix_log(LOG_LEVEL_CRIT, "cannot stat [%s]: %s",						CONFIG_SNMPTRAP_FILE, zbx_strerror(errno));			}			read_traps();			close_trap_file();		}		else if (file_buf.st_ino != trap_ino || file_buf.st_size < trap_lastsize)		{			/* file has been rotated, process the current file */			read_traps();			close_trap_file();		}		else if (file_buf.st_size == trap_lastsize)		{			return FAIL;	/* no new traps */		}	}	if (-1 == trap_fd && -1 == open_trap_file())		return FAIL;	return SUCCEED;}
开发者ID:felixleong,项目名称:zabbix,代码行数:49,


示例25: get_net_stat

static int	get_net_stat(const char *if_name, net_stat_t *ns, char **error){#if defined(HAVE_LIBPERFSTAT)	perfstat_id_t		ps_id;	perfstat_netinterface_t	ps_netif;	if (NULL == if_name || '/0' == *if_name)	{		*error = zbx_strdup(NULL, "Network interface name cannot be empty.");		return SYSINFO_RET_FAIL;	}	strscpy(ps_id.name, if_name);	if (-1 == perfstat_netinterface(&ps_id, &ps_netif, sizeof(ps_netif), 1))	{		*error = zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno));		return SYSINFO_RET_FAIL;	}	ns->ibytes = (zbx_uint64_t)ps_netif.ibytes;	ns->ipackets = (zbx_uint64_t)ps_netif.ipackets;	ns->ierr = (zbx_uint64_t)ps_netif.ierrors;	ns->obytes = (zbx_uint64_t)ps_netif.obytes;	ns->opackets = (zbx_uint64_t)ps_netif.opackets;	ns->oerr = (zbx_uint64_t)ps_netif.oerrors;	ns->colls = (zbx_uint64_t)ps_netif.collisions;	return SYSINFO_RET_OK;#else	SET_MSG_RESULT(result, zbx_strdup(NULL, "Agent was compiled without support for Perfstat API."));	return SYSINFO_RET_FAIL;#endif}
开发者ID:HenryGeek,项目名称:auto_deploy,代码行数:36,


示例26: VM_MEMORY_PROC_MEMINFO

static int	VM_MEMORY_PROC_MEMINFO(const char *meminfo_entry, AGENT_RESULT *result){	FILE		*f;	zbx_uint64_t	value;	int		ret = SYSINFO_RET_FAIL;	if (NULL == (f = fopen("/proc/meminfo", "r")))	{		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot open /proc/meminfo: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	if (SUCCEED == byte_value_from_proc_file(f, meminfo_entry, NULL, &value))	{		SET_UI64_RESULT(result, value);		ret = SYSINFO_RET_OK;	}	else		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain value from /proc/meminfo."));	zbx_fclose(f);	return ret;}
开发者ID:zabbix,项目名称:zabbix,代码行数:24,


示例27: diskstat_shm_init

/****************************************************************************** *                                                                            * * Function: diskstat_shm_init                                                * *                                                                            * * Purpose: Allocate shared memory for collecting disk statistics             * *                                                                            * ******************************************************************************/void	diskstat_shm_init(){#ifndef _WINDOWS	key_t	shm_key;	size_t	shm_size;	/* initially allocate memory for collecting statistics for only 1 disk */	shm_size = sizeof(ZBX_DISKDEVICES_DATA);	if (-1 == (shm_key = zbx_ftok(CONFIG_FILE, ZBX_IPC_COLLECTOR_DISKSTAT)))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot create IPC key for disk statistics collector");		exit(EXIT_FAILURE);	}	if (-1 == (collector->diskstat_shmid = zbx_shmget(shm_key, shm_size)))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot allocate shared memory for disk statistics collector");		exit(EXIT_FAILURE);	}	if ((void *)(-1) == (diskdevices = shmat(collector->diskstat_shmid, NULL, 0)))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot attach shared memory for disk statistics collector: %s",				zbx_strerror(errno));		exit(EXIT_FAILURE);	}	diskdevices->count = 0;	diskdevices->max_diskdev = 1;	my_diskstat_shmid = collector->diskstat_shmid;	zabbix_log(LOG_LEVEL_DEBUG, "diskstat_shm_init() allocated initial shm segment id:%d"			" for disk statistics collector", collector->diskstat_shmid);#endif}
开发者ID:diegolima,项目名称:zabbix-uglibc-mips,代码行数:43,


示例28: SYSTEM_HOSTNAME

int	SYSTEM_HOSTNAME(AGENT_REQUEST *request, AGENT_RESULT *result){	char	*hostname;	long 	hostbufsize = 0;#ifdef _SC_HOST_NAME_MAX	hostbufsize = sysconf(_SC_HOST_NAME_MAX) + 1;#endif	if (0 == hostbufsize)		hostbufsize = 256;	hostname = zbx_malloc(NULL, hostbufsize);	if (0 != gethostname(hostname, hostbufsize))	{		zbx_free(hostname);		SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));		return SYSINFO_RET_FAIL;	}	SET_STR_RESULT(result, hostname);	return SYSINFO_RET_OK;}
开发者ID:HupuInc,项目名称:zabbix,代码行数:24,


示例29: print_fatal_info

void	print_fatal_info(int sig, siginfo_t *siginfo, void *context){#ifdef	HAVE_SYS_UCONTEXT_H#if defined(REG_EIP) || defined(REG_RIP)	ucontext_t	*uctx = (ucontext_t *)context;#endif	/* look for GET_PC() macro in sigcontextinfo.h files */	/* of glibc if you wish to add more CPU architectures */#	if	defined(REG_EIP)	/* i386 */#		define ZBX_GET_REG(uctx, reg)	(uctx)->uc_mcontext.gregs[reg]#		define ZBX_GET_PC(uctx)		ZBX_GET_REG(uctx, REG_EIP)#	elif	defined(REG_RIP)	/* x86_64 */#		define ZBX_GET_REG(uctx, reg)	(uctx)->uc_mcontext.gregs[reg]#		define ZBX_GET_PC(uctx)		ZBX_GET_REG(uctx, REG_RIP)#	endif#endif	/* HAVE_SYS_UCONTEXT_H */#ifdef	HAVE_EXECINFO_H#	define	ZBX_BACKTRACE_SIZE	60	char	**bcktrc_syms;	void	*bcktrc[ZBX_BACKTRACE_SIZE];	int	bcktrc_sz;#endif	/* HAVE_EXECINFO_H */	int	i;	FILE	*fd;	zabbix_log(LOG_LEVEL_CRIT, "====== Fatal information: ======");#ifdef	HAVE_SYS_UCONTEXT_H#ifdef	ZBX_GET_PC	zabbix_log(LOG_LEVEL_CRIT, "Program counter: %p", ZBX_GET_PC(uctx));	zabbix_log(LOG_LEVEL_CRIT, "=== Registers: ===");	for (i = 0; i < NGREG; i++)		zabbix_log(LOG_LEVEL_CRIT, "%-7s = %16lx = %20lu = %20ld", get_register_name(i),				ZBX_GET_REG(uctx, i), ZBX_GET_REG(uctx, i), ZBX_GET_REG(uctx, i));#ifdef	REG_EBP	/* dump a bit of stack frame for i386 */	zabbix_log(LOG_LEVEL_CRIT, "=== Stack frame: ===");	for (i = 16; i >= 2; i--)		zabbix_log(LOG_LEVEL_CRIT, "+0x%02x(%%ebp) = ebp + %2d = %08x = %10u = %11d%s",				i * ZBX_PTR_SIZE, i * ZBX_PTR_SIZE,				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) + i * ZBX_PTR_SIZE),				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) + i * ZBX_PTR_SIZE),				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) + i * ZBX_PTR_SIZE),				i == 2 ? " <--- call arguments" : "");	zabbix_log(LOG_LEVEL_CRIT, "+0x%02x(%%ebp) = ebp + %2d = %08x%28s<--- return address",				ZBX_PTR_SIZE, ZBX_PTR_SIZE,				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) + ZBX_PTR_SIZE), "");	zabbix_log(LOG_LEVEL_CRIT, "     (%%ebp) = ebp      = %08x%28s<--- saved ebp value",				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP)), "");	for (i = 1; i <= 16; i++)		zabbix_log(LOG_LEVEL_CRIT, "-0x%02x(%%ebp) = ebp - %2d = %08x = %10u = %11d%s",				i * ZBX_PTR_SIZE, i * ZBX_PTR_SIZE,				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) - i * ZBX_PTR_SIZE),				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) - i * ZBX_PTR_SIZE),				*(unsigned int *)((void *)ZBX_GET_REG(uctx, REG_EBP) - i * ZBX_PTR_SIZE),				i == 1 ? " <--- local variables" : "");#endif	/* REG_EBP */#else	zabbix_log(LOG_LEVEL_CRIT, "program counter not available for this architecture");	zabbix_log(LOG_LEVEL_CRIT, "=== Registers: ===");	zabbix_log(LOG_LEVEL_CRIT, "register dump not available for this architecture");#endif	/* ZBX_GET_PC */#endif	/* HAVE_SYS_UCONTEXT_H */	zabbix_log(LOG_LEVEL_CRIT, "=== Backtrace: ===");#ifdef	HAVE_EXECINFO_H	bcktrc_sz = backtrace(bcktrc, ZBX_BACKTRACE_SIZE);	bcktrc_syms = backtrace_symbols(bcktrc, bcktrc_sz);	if (NULL == bcktrc_syms)	{		zabbix_log(LOG_LEVEL_CRIT, "error in backtrace_symbols(): %s", zbx_strerror(errno));		for (i = 0; i < bcktrc_sz; i++)			zabbix_log(LOG_LEVEL_CRIT, "%d: %p", bcktrc_sz - i - 1, bcktrc[i]);	}	else	{		for (i = 0; i < bcktrc_sz; i++)			zabbix_log(LOG_LEVEL_CRIT, "%d: %s", bcktrc_sz - i - 1, bcktrc_syms[i]);		zbx_free(bcktrc_syms);//.........这里部分代码省略.........
开发者ID:HupuInc,项目名称:zabbix,代码行数:101,


示例30: diskstat_shm_extend

/****************************************************************************** *                                                                            * * Function: diskstat_shm_extend                                              * *                                                                            * * Purpose: create a new, larger disk statistics shared memory segment and    * *          copy data from the old one.                                       * *                                                                            * ******************************************************************************/void	diskstat_shm_extend(){#ifndef _WINDOWS	const char		*__function_name = "diskstat_shm_extend";	key_t			shm_key;	size_t			old_shm_size, new_shm_size;	int			old_shmid, new_shmid, old_max, new_max;	ZBX_DISKDEVICES_DATA	*new_diskdevices;	zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __function_name);	/* caclulate the size of the new shared memory segment */	old_max = diskdevices->max_diskdev;	if (old_max < 4)		new_max = old_max + 1;	else if (old_max < 256)		new_max = old_max * 2;	else		new_max = old_max + 256;	old_shm_size = sizeof(ZBX_DISKDEVICES_DATA) + sizeof(ZBX_SINGLE_DISKDEVICE_DATA) * (old_max - 1);	new_shm_size = sizeof(ZBX_DISKDEVICES_DATA) + sizeof(ZBX_SINGLE_DISKDEVICE_DATA) * (new_max - 1);	/* Create the new shared memory segment. The same key is used. */	if (-1 == (shm_key = zbx_ftok(CONFIG_FILE, ZBX_IPC_COLLECTOR_DISKSTAT)))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot create IPC key for extending disk statistics collector");		exit(EXIT_FAILURE);	}	/* zbx_shmget() will:                                                 */	/*	- see that a shared memory segment with this key exists       */	/*	- mark it for deletion                                        */	/*	- create a new segment with this key, but with a different id */	if (-1 == (new_shmid = zbx_shmget(shm_key, new_shm_size)))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot allocate shared memory for extending disk statistics collector");		exit(EXIT_FAILURE);	}	if ((void *)(-1) == (new_diskdevices = shmat(new_shmid, NULL, 0)))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot attach shared memory for extending disk statistics collector: %s",				zbx_strerror(errno));		exit(EXIT_FAILURE);	}	/* copy data from the old segment */	memcpy(new_diskdevices, diskdevices, old_shm_size);	new_diskdevices->max_diskdev = new_max;	/* delete the old segment */	if (-1 == shmdt((void *) diskdevices))	{		zabbix_log(LOG_LEVEL_CRIT, "cannot detach from disk statistics collector shared memory");		exit(EXIT_FAILURE);	}	/* switch to the new segment */	old_shmid = collector->diskstat_shmid;	collector->diskstat_shmid = new_shmid;	my_diskstat_shmid = collector->diskstat_shmid;	diskdevices = new_diskdevices;	zabbix_log(LOG_LEVEL_DEBUG, "End of %s() extended diskstat shared memory: old_max:%d new_max:%d old_size:%d"			" new_size:%d old_shmid:%d new_shmid:%d", __function_name, old_max, new_max, old_shm_size,			new_shm_size, old_shmid, collector->diskstat_shmid);#endif}
开发者ID:diegolima,项目名称:zabbix-uglibc-mips,代码行数:79,



注:本文中的zbx_strerror函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ zbx_strlcpy函数代码示例
C++ zbx_strdup函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。