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

📄 memory.c

📁 watchdog source watchdog source
💻 C
字号:
/* $Header: /cvsroot/watchdog/watchdog/src/memory.c,v 1.2 2006/07/31 09:39:23 meskes Exp $ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <errno.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <sys/param.h>#include "extern.h"#include "watch_err.h"#if USE_SYSLOG#include <syslog.h>#endif#define FREEMEM		"MemFree:"#define FREESWAP	"SwapFree:"int check_memory(void){    char buf[1024], *ptr1, *ptr2;    unsigned int free;    /* is the memory file open? */    if (mem == -1)	return (ENOERR);    /* position pointer at start of file */    if (lseek(mem, 0, SEEK_SET) < 0) {	int err = errno;#if USE_SYSLOG	syslog(LOG_ERR, "lseek /proc/meminfo gave errno = %d = '%m'", err);#else				/* USE_SYSLOG */	perror(progname);#endif				/* USE_SYSLOG */	if (softboot)	    return (err);	return (ENOERR);    }        /* read the file */    if (read(mem, buf, sizeof(buf)) < 0) {	int err = errno;#if USE_SYSLOG	syslog(LOG_ERR, "read /proc/meminfo gave errno = %d = '%m'", err);#else				/* USE_SYSLOG */	perror(progname);#endif				/* USE_SYSLOG */	if (softboot)	    return (err);	return (ENOERR);    }        ptr1 = strstr(buf, FREEMEM);    ptr2 = strstr(buf, FREESWAP);        if (!ptr1 || !ptr2) {#if USE_SYSLOG	syslog(LOG_ERR, "/proc/meminfo contains invalid data (read = %s)", buf);#else				/* USE_SYSLOG */	perror(progname);#endif				/* USE_SYSLOG */	if (softboot)	    return (EINVMEM);	return (ENOERR);    }    /* we only care about integer values */    free = atoi(ptr1+strlen(FREEMEM)) + atoi(ptr2+strlen(FREESWAP));#if USE_SYSLOG    if (verbose && logtick && ticker == 1)	syslog(LOG_INFO, "currently there are %d kB of free memory available", free);#endif				/* USE_SYSLOG */    if (free < minpages * (EXEC_PAGESIZE / 1024)) {#if USE_SYSLOG	syslog(LOG_ERR, "memory %d kB is less than %d pages", free, minpages);#endif				/* USE_SYSLOG */	return (ENOMEM);    }        return (ENOERR);}

⌨️ 快捷键说明

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