• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ enomem函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: write_sqconfig

void write_sqconfig(const char *dir, const char *configfile, const char *val)
{
    char *p=malloc(strlen(dir) + strlen(configfile) + 2);
    FILE	*f;

    if (!p)	enomem();
    strcat(strcat(strcpy(p, dir), "/"), configfile);
    if (!val)
        unlink(p);
    else
    {
        f=fopen(p, "w");
        if (!f)	enomem();
        fprintf(f, "%s\n", val);
        fflush(f);
        if (ferror(f))	enomem();
        fclose(f);

        /* Note - umask should already turn off the 077 bits, but
        ** just in case someone screwed up previously, I'll fix it
        ** myself */

        chmod(p, 0600);
    }
    free(p);
}
开发者ID:zixia,项目名称:wmail,代码行数:26,代码来源:sqconfig.c


示例2: enomem

static char *getgpgconfig(const char *name)
{
	const char *p;
	char	*q, *r;

	int name_l=strlen(name);

	p=read_sqconfig(".", GPGCONFIGFILE, 0);

	if (p)
	{
		q=strdup(p);
		if (!q)
			enomem();

		for (r=q; (r=strtok(r, " ")) != NULL; r=NULL)
			if (strncmp(r, name, name_l) == 0 &&
			    r[name_l] == '=')
			{
				r=strdup(r+name_l+1);
				free(q);
				if (!r)
					enomem();
				return (r);
			}
		free(q);
	}
	return (NULL);
}
开发者ID:zixia,项目名称:nospam,代码行数:29,代码来源:pref.c


示例3: login_changepwd

int login_changepwd(const char *u, const char *oldpwd, const char *newpwd,
		    int *rc)
{
	char *uid=strdup(u);
	char *driver;
	int	i;

	if (!uid)
		enomem();

	verifyuid(uid);

	if ((driver=strrchr(uid, '.')) == 0)
	{
		free(uid);
		enomem();
	}

	*driver++=0;

	for (i=0; authstaticmodulelist[i]; i++)
	{
		if (strcmp(authstaticmodulelist[i]->auth_name, driver) == 0)
		{
			*rc=badstr(uid) || badstr(oldpwd) || badstr(newpwd)
				? 1:(*authstaticmodulelist[i]->auth_changepwd)
				("webmail", uid, oldpwd, newpwd);

			free(uid);
			return (0);
		}
	}
	return (-1);
}
开发者ID:zixia,项目名称:wmail,代码行数:34,代码来源:auth.c


示例4: once_init

rt_public void once_init (void)
{
	EIF_GET_CONTEXT

#if !defined(WORKBENCH) && !defined (EIF_THREADS)
	int32 old_egc_prof_enabled = egc_prof_enabled; /* Save profiler status */
	egc_prof_enabled = 0;	/* Disable profiler as it is not initialized yet. */
#endif

	ALLOC_ONCE_INDEXES; 	/* Allocate array of once indexes. */
	egc_system_mod_init (); /* Assign once indexes. */

#if !defined(WORKBENCH) && !defined (EIF_THREADS)
	egc_prof_enabled = old_egc_prof_enabled; /* Restore profiler status. */
#endif

	if (!debug_mode) {
			/* Once indexes could be used by debugger,
			 * but we are not under debugger at the moment. */
		FREE_ONCE_INDEXES;	/* Free once indexes. */
	}

	/* Allocate room for once manifest strings array. */
	ALLOC_OMS (EIF_oms);

	if (EIF_once_count == 0) {
		EIF_once_values = (EIF_once_value_t *) 0;
	} else {
		/* Allocate room for once values. */
		EIF_once_values = (EIF_once_value_t *) eif_realloc (EIF_once_values, EIF_once_count * sizeof *EIF_once_values);
				/* needs malloc; crashes otherwise on some pure C-ansi compiler (SGI)*/
		if (EIF_once_values == (EIF_once_value_t *) 0) /* Out of memory */
			enomem();
		memset (EIF_once_values, 0, EIF_once_count * sizeof *EIF_once_values);
	}

#ifdef EIF_THREADS
	if (EIF_process_once_count == 0) {
		EIF_process_once_values = (EIF_process_once_value_t *) 0;
	} else {
			/* Allocate room for process-relative once values. */
		EIF_process_once_values = (EIF_process_once_value_t *) eif_realloc (EIF_process_once_values, EIF_process_once_count * sizeof *EIF_process_once_values);
				/* needs malloc; crashes otherwise on some pure C-ansi compiler (SGI)*/
		if (EIF_process_once_values == (EIF_process_once_value_t *) 0) /* Out of memory */
			enomem();
		memset (EIF_process_once_values, 0, EIF_process_once_count * sizeof *EIF_process_once_values);
		{
			int i = EIF_process_once_count;
			while (i > 0) {
				i--;
				EIF_process_once_values [i].mutex = eif_thr_mutex_create ();
			}
		}
	}
#endif
}
开发者ID:tioui,项目名称:EiffelStudio,代码行数:56,代码来源:main.c


示例5: setgpgconfig

static void setgpgconfig(const char *name, const char *value)
{
	const	char *p;
	char *q, *r, *s;
	int name_l=strlen(name);

	/* Get the existing settings */

	p=read_sqconfig(".", GPGCONFIGFILE, 0);

	if (!p)
		p="";

	q=strdup(p);
	if (!q)
		enomem();

	s=malloc(strlen(q)+strlen(name)+strlen(value)+4);
	if (!s)
		enomem();
	*s=0;

	/*
	** Copy existing settings into a new buffer, deleting any old
	** setting.
	*/

	for (r=q; (r=strtok(r, " ")) != NULL; r=NULL)
	{
		if (strncmp(r, name, name_l) == 0 &&
		    r[name_l] == '=')
		{
			continue;
		}

		if (*s)
			strcat(s, " ");
		strcat(s, r);
	}

	/* Append the new setting */

	if (*s)
		strcat(s, " ");
	strcat(strcat(strcat(s, name), "="), value);
	free(q);
	write_sqconfig(".", GPGCONFIGFILE, s);
	free(s);
}
开发者ID:zixia,项目名称:nospam,代码行数:49,代码来源:pref.c


示例6: fclose

const char *myhostname()
{
char    buf[512];
static char *my_hostname=0;
FILE	*f;

	if (my_hostname == 0)
	{
		buf[0]=0;
		if ((f=fopen(HOSTNAMEFILE, "r")) != 0)
		{
		char *p;

			if (fgets(buf, sizeof(buf), f) == NULL)
				buf[0]=0;

			fclose(f);

			if ((p=strchr(buf, '\n')) != 0)
				*p=0;
		}

		if (buf[0] == 0 && gethostname(buf, sizeof(buf)-1))
			strcpy(buf, "localhost");

		if ((my_hostname=malloc(strlen(buf)+1)) == 0)
			enomem();
		strcpy(my_hostname, buf);
	}
	return (my_hostname);
}
开发者ID:MhdAlyan,项目名称:courier,代码行数:31,代码来源:auth.c


示例7: setup_log_file

/* Setup the logging output mechanism. */
int
setup_log_file(CONFIG *cfg)
{
	char *fname;

	if (cfg->verbose < 1)
		return (0);

	if ((fname = calloc(strlen(cfg->home) +
	    strlen(cfg->table_name) + strlen(".stat") + 2, 1)) == NULL)
		return (enomem(cfg));

	sprintf(fname, "%s/%s.stat", cfg->home, cfg->table_name);
	cfg->logf = fopen(fname, "w");
	free(fname);

	if (cfg->logf == NULL) {
		fprintf(stderr,
		    "Failed to open log file: %s\n", strerror(errno));
		return (EINVAL);
	}

	/* Use line buffering for the log file. */
	(void)setvbuf(cfg->logf, NULL, _IOLBF, 0);
	return (0);
}
开发者ID:RolfAndreassen,项目名称:wiredtiger,代码行数:27,代码来源:misc.c


示例8: sizeof

static char *append_str(const char *prefs, const char *label,
	const char *value)
{
int	l=strlen(prefs) + sizeof(" =") +
	strlen(label)+ (value ? strlen(value):0);
int	i;
char	*p;
const char *q;

	for (i=0; value && value[i]; i++)
		if (value[i] <= ' ' || value[i] >= 127
			|| value[i] == '+')
			l += 2;

	p=malloc(l);
	if (!p)	enomem();
	strcpy(p, prefs);
	if (!value || !*value)	return (p);

	strcat(strcat(strcat(p, " "), label), "=");
	i=strlen(p);
	for (q=value; *q; q++)
	{
		if (*q <= ' ' || *q >= 127 || *q == '+')
		{
			sprintf(p+i, "+%02X", (int)(unsigned char)*q);
			i += 3;
			continue;
		}
		p[i++]= *q;
	}
	p[i]=0;
	return (p);
}
开发者ID:zixia,项目名称:nospam,代码行数:34,代码来源:pref.c


示例9: emalloc

/*
 * emalloc --
 *	malloc, but die on error.
 */
void * emalloc(size_t len) {
	void * ptr = malloc(len);

	if( ptr == NULL )
		enomem();
	return ptr;
}
开发者ID:apronchenkov,项目名称:rcorder,代码行数:11,代码来源:ealloc.c


示例10: ecalloc

/*
 * ecalloc --
 *	calloc, but die on error.
 */
void * ecalloc(size_t nmemb, size_t size) {
	void * ptr = calloc(nmemb, size);

	if( ptr == NULL )
		enomem();
	return ptr;
}
开发者ID:apronchenkov,项目名称:rcorder,代码行数:11,代码来源:ealloc.c


示例11: save_arg

static void
save_arg(args_t *args, char *arg1, ...)
{
    char *carg;
    va_list argp;

    va_start(argp, arg1);
    carg = arg1;
    while (carg) {
	if (args->no <= args->ix) {
	    args->vec = (char **) (args->no
				   ? realloc((void *) args->vec,
					     (sizeof(char *)
					      *(args->no + ARGS_INCR + 1)))
				   : malloc((sizeof(char *)
					     *(args->no + ARGS_INCR + 1))));
	    if (!args->vec)
		enomem();
	    args->no += ARGS_INCR;
	}
	args->vec[args->ix++] = carg;
	args->chars += strlen(carg);
	carg = va_arg(argp, char *);
    }
    args->vec[args->ix++] = " ";
    args->chars++;
    va_end(argp);
}
开发者ID:NagarajShet,项目名称:otp,代码行数:28,代码来源:gccifier.c


示例12: spellignore

static int spellignore(const char *word)
{
char	buf[100];
const char *c;
char	*p, *q;
FILE	*fp=opendict("r");

	if (!fp)	return (0);
	while (fgets(buf, sizeof(buf), fp) != NULL)
	{
		if ((p=strchr(buf, '\n')) != 0)	*p=0;
		if (strcmp(word, buf) == 0)
		{
			fclose(fp);
			return (1);
		}
	}
	fclose(fp);

	c=cgi("globignore");

	p=malloc(strlen(c)+1);
	if (!p)	enomem();
	strcpy(p, c);

	for (q=p; (q=strtok(q, ":")) != 0; q=0)
		if (strcmp(q, word) == 0)
		{
			free(p);
			return (1);
		}

	return (0);
}
开发者ID:zixia,项目名称:wmail,代码行数:34,代码来源:sqispell.c


示例13: bmake_realloc

/*
 * bmake_realloc --
 *	realloc, but die on error.
 */
void *
bmake_realloc(void *ptr, size_t size)
{
	if ((ptr = realloc(ptr, size)) == NULL)
		enomem();
	return(ptr);
}
开发者ID:obache,项目名称:closedsrc,代码行数:11,代码来源:make_malloc.c


示例14: new_V3

void new_V3(
    float x,
    float y,
    float z)
{
    if (!current_prim) {
        printf("!!! ignoring V3 outside of prim\n");
        return;
    }
    struct prim_t * p = current_prim;
    struct V3_t * v = p->V3;
    if (!v) {
        v = malloc(sizeof(*v));
        p->V3 = v;
    } else {
        while (v->next)
            v = v->next;
        v->next = malloc(sizeof(*v));
        v = v->next;
    }
    if (!v) enomem();
    v->next = NULL;
    v->norm = norm_last;
    v->v.x = x;
    v->v.y = y;
    v->v.z = z;
    p->nV3++;
}
开发者ID:mazzoo,项目名称:ogldump,代码行数:28,代码来源:ogldump.c


示例15: estrdup

/*
 * estrdup --
 *	strdup, but die on error.
 */
char * estrdup(const char * str) {
	char * ptr = strdup(str);

	if( ptr == NULL )
		enomem();
	return ptr;
}
开发者ID:apronchenkov,项目名称:rcorder,代码行数:11,代码来源:ealloc.c


示例16: safe_alloc

void * safe_alloc (void *ptr)
{
  if (ptr == NULL)
    {
      enomem ();
    }
  return ptr;
}
开发者ID:jocelyn,项目名称:EiffelStudio,代码行数:8,代码来源:sybase.c


示例17: verifyuid

static void verifyuid(char *uid)
{
	if (badstr(uid))
	{
		free(uid);
		enomem();
	}
}
开发者ID:zixia,项目名称:wmail,代码行数:8,代码来源:auth.c


示例18: new_VertexPointer

void new_VertexPointer( GLint size, GLenum type,
                        GLsizei stride, const GLvoid *ptr )
{
    if (size != 3) {
        printf("!!! unsupported new_VertexPointer() size %d\n", size);
        return;
    }
    if ( (type != GL_FLOAT) &&
            (type != GL_SHORT) )
    {
        printf("!!! unsupported new_VertexPointer() type %d\n", type);
        return;
    }

    struct vertexpointer_t * p = vertexpointer;

    if (!p) {
        p = malloc(sizeof(*p));
        all_vertexpointer = p;
    } else {
        p->next = malloc(sizeof(*p));
        p = p->next;
    }
    if (!p) enomem();
    p->next = NULL;

    p->size   = size;
    p->type   = type;
    p->ptr    = ptr;
    p->stride = stride;

    p->max_index = 0;

    p->sizeof_type = 0;
    switch (type) {
    case GL_SHORT:
        p->sizeof_type = 2;
        break;
    case GL_INT:
        p->sizeof_type = 4;
        break;
    case GL_FLOAT:
        p->sizeof_type = 4;
        break;
    case GL_DOUBLE:
        p->sizeof_type = 8;
        break;
    default:
        printf("!!! ERROR: unknown type %d in glVertexPointer()\n", type);
        exit(1);
    }

    vertexpointer = p;
    /* a stride of 0 means tightly packed, we prefer a correct stride value */
    if (p->stride == 0) {
        p->stride = p->sizeof_type * p->size;
    }
}
开发者ID:mazzoo,项目名称:ogldump,代码行数:58,代码来源:ogldump.c


示例19: write_sqconfig

void write_sqconfig(const char *dir, const char *configfile, const char *val)
{
	char *p=malloc(strlen(dir) + strlen(configfile) + 2);

	struct maildir_tmpcreate_info createInfo;
	FILE *fp;

	if (!p)	enomem();

	strcat(strcat(strcpy(p, dir), "/"), configfile);
	if (!val)
	{
		unlink(p);
		free(p);
		return;
	}

	maildir_tmpcreate_init(&createInfo);

	createInfo.maildir=dir;
	createInfo.uniq="config";
	createInfo.doordie=1;

	fp=maildir_tmpcreate_fp(&createInfo);

	if (!fp)
		enomem();


	free(createInfo.newname);
	createInfo.newname=p;

	fprintf(fp, "%s\n", val);
	fflush(fp);
	if (ferror(fp))	eio("Error after write:",p);
	fclose(fp);

	/* Note - umask should already turn off the 077 bits, but
	** just in case someone screwed up previously, I'll fix it
	** myself */

	chmod(createInfo.tmpname, 0600);
	rename(createInfo.tmpname, createInfo.newname);
	maildir_tmpcreate_free(&createInfo);
}
开发者ID:MhdAlyan,项目名称:courier,代码行数:45,代码来源:sqconfig.c


示例20: emalloc

/*
 * emalloc --
 *	malloc, but die on error.
 */
char *
emalloc(u_int len)
{
	char *p;

	if (!(p = (char *)malloc(len)))
		enomem();
	return(p);
}
开发者ID:andreiw,项目名称:ode4linux,代码行数:13,代码来源:main.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ enquecommand_P函数代码示例发布时间:2022-05-30
下一篇:
C++ enkf_main_safe_cast函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap