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

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

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

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

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

示例1: main

// main takes care of OS-specific startup and dispatches to xmain.voidmain(int argc, char **argv){	Buf b;	setvbuf(stdout, nil, _IOLBF, BUFSIZ);	setvbuf(stderr, nil, _IOLBF, BUFSIZ);	binit(&b);	rfork(RFENVG);	slash = "/";	gohostos = "plan9";	xgetenv(&b, "objtype");	if(b.len == 0)		fatal("$objtype is unset");	gohostarch = btake(&b);	xgetenv(&b, "GOBIN");	if(b.len == 0){		bpathf(&b, "/%s/bin", gohostarch);		xsetenv("GOBIN", bstr(&b));	}	srand(time(0)+getpid());	init();	xmain(argc, argv);	bfree(&b);	exits(nil);}
开发者ID:icattlecoder,项目名称:go,代码行数:34,


示例2: delete_old_acks

void delete_old_acks(void){	DIR             *xymonacks;	struct dirent   *d;	struct stat     st;	time_t		now = getcurrenttime(NULL);	char		fn[PATH_MAX];	xymonacks = opendir(xgetenv("XYMONACKDIR"));	if (!xymonacks) {		errprintf("No XYMONACKDIR! Cannot cd to directory %s/n", xgetenv("XYMONACKDIR"));		return;        }	chdir(xgetenv("XYMONACKDIR"));	while ((d = readdir(xymonacks))) {		strcpy(fn, d->d_name);		if (strncmp(fn, "ack.", 4) == 0) {			stat(fn, &st);			if (S_ISREG(st.st_mode) && (st.st_mtime < now)) {				unlink(fn);			}		}	}	closedir(xymonacks);}
开发者ID:osvaldsson,项目名称:xymon,代码行数:26,


示例3: load_cookies

void load_cookies(void){	char cookiefn[PATH_MAX];	sprintf(cookiefn, "%s/etc/cookies", xgetenv("XYMONHOME"));	load_cookies_one(cookiefn);	sprintf(cookiefn, "%s/etc/cookies.session", xgetenv("XYMONHOME"));	load_cookies_one(cookiefn);}
开发者ID:osvaldsson,项目名称:xymon,代码行数:10,


示例4: libxymon_init

void libxymon_init(char *toolname){	static int firstcall = 1;	if (firstcall) {		firstcall = 0;		programname = basename(strdup(toolname));		pidfn = (char *)malloc(strlen(xgetenv("XYMONSERVERLOGS")) + strlen(programname) + 6);		sprintf(pidfn, "%s/%s.pid", xgetenv("XYMONSERVERLOGS"), programname);	}}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:13,


示例5: sendmessage

sendresult_t sendmessage(char *msg, char *recipient, int timeout, sendreturn_t *response){	static char *xymsrv = NULL;	int res = 0;	*errordetails = '/0'; 	if ((xymsrv == NULL) && xgetenv("XYMSRV")) xymsrv = strdup(xgetenv("XYMSRV"));	if (recipient == NULL) recipient = xymsrv;	if ((recipient == NULL) && xgetenv("XYMSERVERS")) {		recipient = "0.0.0.0";	} else if (recipient == NULL) {		errprintf("No recipient for message/n");		return XYMONSEND_EBADIP;	}	res = sendtomany(recipient, xgetenv("XYMSERVERS"), msg, timeout, response);	if (res != XYMONSEND_OK) {		char *statustext = "";		char *eoln;		switch (res) {		  case XYMONSEND_OK            : statustext = "OK"; break;		  case XYMONSEND_EBADIP        : statustext = "Bad IP address"; break;		  case XYMONSEND_EIPUNKNOWN    : statustext = "Cannot resolve hostname"; break;		  case XYMONSEND_ENOSOCKET     : statustext = "Cannot get a socket"; break;		  case XYMONSEND_ECANNOTDONONBLOCK   : statustext = "Non-blocking I/O failed"; break;		  case XYMONSEND_ECONNFAILED   : statustext = "Connection failed"; break;		  case XYMONSEND_ESELFAILED    : statustext = "select(2) failed"; break;		  case XYMONSEND_ETIMEOUT      : statustext = "timeout"; break;		  case XYMONSEND_EWRITEERROR   : statustext = "write error"; break;		  case XYMONSEND_EREADERROR    : statustext = "read error"; break;		  case XYMONSEND_EBADURL       : statustext = "Bad URL"; break;		  default:                statustext = "Unknown error"; break;		};		eoln = strchr(msg, '/n'); if (eoln) *eoln = '/0';		if (strcmp(recipient, "0.0.0.0") == 0) recipient = xgetenv("XYMSERVERS");		errprintf("Whoops ! Failed to send message (%s)/n", statustext);		errprintf("->  %s/n", errordetails);		errprintf("->  Recipient '%s', timeout %d/n", recipient, timeout);		errprintf("->  1st line: '%s'/n", msg);		if (eoln) *eoln = '/n';	}	/* Give it a break */	if (sleepbetweenmsgs) usleep(sleepbetweenmsgs);	xymonmsgcount++;	return res;}
开发者ID:tjyang,项目名称:cpam,代码行数:51,


示例6: servicecode

static int servicecode(char *testname){    /*     * The SVCCODES environment is a list of servicecodes:     * SVCCODES="disk:100,cpu:200,procs:300,msgs:400,conn:500,http:600,dns:800,smtp:725,telnet:721"     * This routine returns the number associated with the service.     */    static char *svccodes = NULL;    char *tname;    char *p;    if (svccodes == NULL) {        p = xgetenv("SVCCODES");        if (p == NULL) p = "none";        svccodes = (char *)malloc(strlen(p)+2);        sprintf(svccodes, ",%s", p);    }    tname = (char *)malloc(strlen(testname)+3);    sprintf(tname, ",%s:", testname);    p = strstr(svccodes, tname);    xfree(tname);    if (p) {        p = strchr(p, ':');        return atoi(p+1);    }    return 0;}
开发者ID:osvaldsson,项目名称:xymon,代码行数:30,


示例7: save_session_cookies

void save_session_cookies(void){	FILE *fd = NULL;	char cookiefn[PATH_MAX];	xtreePos_t h;	hcookie_t *itm;	sprintf(cookiefn, "%s/etc/cookies.session", xgetenv("XYMONHOME"));	fd = fopen(cookiefn, "w");	if (fd == NULL) return;	for (h=xtreeFirst(cookietree); (h != xtreeEnd(cookietree)); h = xtreeNext(cookietree, h)) {		char *urlhost, *ckpath, *cknam;		itm = (hcookie_t *)xtreeData(cookietree, h);		urlhost = strtok(itm->key, "/t");		cknam = strtok(NULL, "/t");		ckpath = strtok(NULL, "/t");		fprintf(fd, "%s/tFALSE/t%s/tFALSE/t0/t%s/t%s/n",			urlhost, ckpath, cknam, itm->val);	}	fclose(fd);}
开发者ID:osvaldsson,项目名称:xymon,代码行数:25,


示例8: main

int main(int argc, char *argv[]){	void *walk;	load_hostnames(xgetenv("HOSTSCFG"), NULL, get_fqdn());	for (walk = first_host(); (walk); walk=next_host(walk, 0)) {		char *nk, *nktime, *tok;		nk = xmh_item(walk, XMH_NK); if (!nk) continue;		nktime = xmh_item(walk, XMH_NKTIME);		nk = strdup(nk);		tok = strtok(nk, ",");		while (tok) {			char *hostname = xmh_item(walk, XMH_HOSTNAME);			char *startstr = "", *endstr = "", *ttgroup = "", *ttextra = "", *updinfo = "Migrated";			int priority = 2;			fprintf(stdout, "%s|%s|%s|%s|%s|%d|%s|%s|%s/n",				hostname, tok,				startstr, endstr,				(nktime ? nktime : ""),				priority, ttgroup, ttextra, updinfo);			tok = strtok(NULL, ",");		}		xfree(nk);	}	return 0;}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:34,


示例9: print_disklist

static void print_disklist(char *hostname){    /*     * We get the list of monitored disks/filesystems by looking at the     * set of disk RRD files for this host. That way we do not have to     * parse the disk status reports that come in many different flavours.     */    char dirname[PATH_MAX];    char fn[PATH_MAX];    DIR *d;    struct dirent *de;    char *p;    sprintf(dirname, "%s/%s", xgetenv("BBRRDS"), hostname);    d = opendir(dirname);    if (!d) return;    while ((de = readdir(d)) != NULL) {        if (strncmp(de->d_name, "disk,", 5) == 0) {            strcpy(fn, de->d_name + 4);            p = strstr(fn, ".rrd");            if (!p) continue;            *p = '/0';            p = fn;            while ((p = strchr(p, ',')) != NULL) *p = '/';            fprintf(stdout, "%s<br>/n", fn);        }    }    closedir(d);}
开发者ID:tjyang,项目名称:abmon,代码行数:32,


示例10: env_cfg

YBORM_DECL const String env_cfg(const String &entry, const String &def_val){    String value = xgetenv(_T("YBORM_") + entry);    if (str_empty(value))        return def_val;    return value;}
开发者ID:sunfirefox,项目名称:yb-orm,代码行数:7,


示例11: cmdenv

// The env command prints the default environment.voidcmdenv(int argc, char **argv){	bool pflag;	char *sep;	Buf b, b1;	char *format;	binit(&b);	binit(&b1);	format = "%s=/"%s/"/n";	pflag = 0;	ARGBEGIN{	case '9':		format = "%s='%s'/n";		break;	case 'p':		pflag = 1;		break;	case 'v':		vflag++;		break;	case 'w':		format = "set %s=%s/r/n";		break;	default:		usage();	}ARGEND	if(argc > 0)		usage();	xprintf(format, "CC", defaultcc);	xprintf(format, "CC_FOR_TARGET", defaultcctarget);	xprintf(format, "GOROOT", goroot);	xprintf(format, "GOBIN", gobin);	xprintf(format, "GOARCH", goarch);	xprintf(format, "GOOS", goos);	xprintf(format, "GOHOSTARCH", gohostarch);	xprintf(format, "GOHOSTOS", gohostos);	xprintf(format, "GOTOOLDIR", tooldir);	xprintf(format, "GOCHAR", gochar);	if(streq(goarch, "arm"))		xprintf(format, "GOARM", goarm);	if(streq(goarch, "386"))		xprintf(format, "GO386", go386);	if(pflag) {		sep = ":";		if(streq(gohostos, "windows"))			sep = ";";		xgetenv(&b, "PATH");		bprintf(&b1, "%s%s%s", gobin, sep, bstr(&b));		xprintf(format, "PATH", bstr(&b1));	}	bfree(&b);	bfree(&b1);}
开发者ID:rosrad,项目名称:go-rep,代码行数:61,


示例12: errormsg

void errormsg(char *msg){	printf("Content-type: %s/n/n", xgetenv("HTMLCONTENTTYPE"));	printf("<html><head><title>Invalid request</title></head>/n");	printf("<body>%s</body></html>/n", msg);	exit(1);}
开发者ID:osvaldsson,项目名称:xymon,代码行数:7,


示例13: setup_opts

void setup_opts(struct opts *opts, int argc, char **argv) {    opts->o_loglevel = getenv("VCSLOG_DEBUG")? LOG_DEBUG : LOG_INFO;    const char *datadir = getenv("VCSLOG_HOME");    if (datadir == NULL)        datadir = xasprintf("%s/.vcslog", xgetenv("HOME"));    opts->o_datadir = datadir;    opts->o_logdir = xasprintf("%s/logs", opts->o_datadir);    opts->o_execname = xstrdup(basename(argv[0]));    // If a full path was used    if (strchr(argv[0], '/')) {        if (!realpath(argv[0], opts->o_realpath)) {            fprintf(stderr, "vcslog-wrapper: realpath(/"%s/") failed/n",                    argv[0]);            exit(1);        }    } else {        char temp_path[PATH_MAX + 1];        xfind_real_executable(opts, temp_path);        strcpy(opts->o_realpath, temp_path);    }    opts->o_argc = argc - 1;    opts->o_argv = argv + 1;    struct passwd *passwd = getpwuid(geteuid());    opts->o_session_log = xasprintf("%s/vcslog-%s-%s-%d", opts->o_logdir,                                     opts->o_execname, passwd->pw_name, getpid());    opts->o_session_log_file = NULL;}
开发者ID:wolever,项目名称:vcslog,代码行数:29,


示例14: main

int main(int argc, char *argv[]){	int argi;	char *envarea = NULL;	for (argi = 1; (argi < argc); argi++) {		if (argnmatch(argv[argi], "--env=")) {			char *p = strchr(argv[argi], '=');			loadenv(p+1, envarea);		}		else if (argnmatch(argv[argi], "--area=")) {			char *p = strchr(argv[argi], '=');			envarea = strdup(p+1);		}		else if (strcmp(argv[argi], "--debug") == 0) {			debug = 1;		}	}	redirect_cgilog("hobbit-notifylog");	load_hostnames(xgetenv("BBHOSTS"), NULL, get_fqdn());	fprintf(stdout, "Content-type: %s/n/n", xgetenv("HTMLCONTENTTYPE"));	cgidata = cgi_request();	if (cgidata == NULL) {		/* Present the query form */		sethostenv("", "", "", colorname(COL_BLUE), NULL);		showform(stdout, "notify", "notify_form", COL_BLUE, getcurrenttime(NULL), NULL, NULL);		return 0;	}	parse_query();	/* Now generate the webpage */	headfoot(stdout, "notify", "", "header", COL_GREEN);	fprintf(stdout, "<center>/n");	do_notifylog(stdout, maxcount, maxminutes, fromtime, totime, 			pageregex, expageregex, 			hostregex, exhostregex, 			testregex, extestregex,			rcptregex, exrcptregex);	fprintf(stdout, "</center>/n");	headfoot(stdout, "notify", "", "footer", COL_GREEN);	return 0;}
开发者ID:tjyang,项目名称:abmon,代码行数:47,


示例15: redirect_cgilog

void redirect_cgilog(char *cginame){	char logfn[PATH_MAX];	if (cginame) errappname = strdup(cginame);	sprintf(logfn, "%s/cgierror.log", xgetenv("BBSERVERLOGS"));	freopen(logfn, "a", stderr);}
开发者ID:tjyang,项目名称:abmon,代码行数:8,


示例16: combo_params

/* Routines for handling combo message transmission */static void combo_params(void){	static int issetup = 0;	if (issetup) return;	issetup = 1;	if (xgetenv("MAXMSGSPERCOMBO")) maxmsgspercombo = atoi(xgetenv("MAXMSGSPERCOMBO"));	if (maxmsgspercombo == 0) {		/* Force it to 100 */		dbgprintf("MAXMSGSPERCOMBO is 0, setting it to 100/n");		maxmsgspercombo = 100;	}	if (xgetenv("SLEEPBETWEENMSGS")) sleepbetweenmsgs = atoi(xgetenv("SLEEPBETWEENMSGS"));}
开发者ID:tjyang,项目名称:cpam,代码行数:18,


示例17: do_extensions

void do_extensions(FILE *output, char *extenv, char *family){	/*	 * Extension scripts. These are ad-hoc, and implemented as a	 * simple pipe. So we do a fork here ...	 */	char *exts, *p;	FILE *inpipe;	char extfn[PATH_MAX];	strbuffer_t *inbuf;	p = xgetenv(extenv);	if (p == NULL) {		/* No extension */		return;	}	MEMDEFINE(extfn);	exts = strdup(p);	p = strtok(exts, "/t ");	inbuf = newstrbuffer(0);	while (p) {		/* Dont redo the eventlog or acklog things */		if ((strcmp(p, "eventlog.sh") != 0) &&		    (strcmp(p, "acklog.sh") != 0)) {			sprintf(extfn, "%s/ext/%s/%s", xgetenv("XYMONHOME"), family, p);			inpipe = popen(extfn, "r");			if (inpipe) {				initfgets(inpipe);				while (unlimfgets(inbuf, inpipe)) fputs(STRBUF(inbuf), output);				pclose(inpipe);				freestrbuffer(inbuf);			}		}		p = strtok(NULL, "/t ");	}	xfree(exts);	MEMUNDEFINE(extfn);	MEMUNDEFINE(buf);}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:45,


示例18: getenv

char *xgetenv(const char *name){	char *result, *newstr;	int i;	result = getenv(name);	if ((result == NULL) && (strcmp(name, "MACHINE") == 0) && xgetenv("MACHINEDOTS")) {		/* If MACHINE is undefined, but MACHINEDOTS is there, create MACHINE  */		char *oneenv, *p;				oneenv = (char *)malloc(10 + strlen(xgetenv("MACHINEDOTS")));		sprintf(oneenv, "%s=%s", name, xgetenv("MACHINEDOTS"));		p = oneenv; while ((p = strchr(p, '.')) != NULL) *p = ',';		putenv(oneenv);		result = getenv(name);	}	if (result == NULL) {		for (i=0; (xymonenv[i].name && (strcmp(xymonenv[i].name, name) != 0)); i++) ;		if (xymonenv[i].name) result = expand_env(xymonenv[i].val);		if (result == NULL) {			errprintf("xgetenv: Cannot find value for variable %s/n", name);			return NULL;		}		/* 		 * If we got a result, put it into the environment so it will stay there.		 * Allocate memory for this new environment string - this stays allocated.		 */		newstr = malloc(strlen(name) + strlen(result) + 2);		sprintf(newstr, "%s=%s", name, result);		putenv(newstr);		/*		 * Return pointer to the environment string.		 */		result = getenv(name);	}	return result;}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:41,


示例19: setup_signalhandler

void setup_signalhandler(char *programname){	struct rlimit lim;	struct sigaction sa;	MEMDEFINE(signal_bbcmd);	MEMDEFINE(signal_bbdisp);	MEMDEFINE(signal_bbtmp);	MEMDEFINE(signal_msg);	memset(&sa, 0, sizeof(sa));	sa.sa_handler = sigsegv_handler;	/*	 * Try to allow ourselves to generate core files	 */	getrlimit(RLIMIT_CORE, &lim);	lim.rlim_cur = RLIM_INFINITY;	setrlimit(RLIMIT_CORE, &lim);	if (xgetenv("BB") == NULL) return;	if (xgetenv("BBDISP") == NULL) return;	/*	 * Used inside signal-handler. Must be setup in	 * advance.	 */	strcpy(signal_bbcmd, xgetenv("BB"));	strcpy(signal_bbdisp, xgetenv("BBDISP"));	strcpy(signal_bbtmp, xgetenv("BBTMP"));	sprintf(signal_msg, "status %s.%s red - Program crashed/n/nFatal signal caught!/n", 		(xgetenv("MACHINE") ? xgetenv("MACHINE") : "BBDISPLAY"), programname);	sigaction(SIGSEGV, &sa, NULL);	sigaction(SIGILL, &sa, NULL);#ifdef SIGBUS	sigaction(SIGBUS, &sa, NULL);#endif	/*	 * After lengthy debugging and perusing of mail archives:	 * Need to ignore SIGPIPE since FreeBSD (and others?) can throw this	 * on a write() instead of simply returning -EPIPE like any sane	 * OS would.	 */	signal(SIGPIPE, SIG_IGN);	/* Ignore SIGUSR1 unless explicitly set by main program */	signal (SIGUSR1, SIG_IGN);	/* SIGUSR2 toggles debugging */	memset(&sa, 0, sizeof(sa));	sa.sa_handler = sigusr2_handler;	sigaction(SIGUSR2, &sa, NULL);}
开发者ID:tjyang,项目名称:abmon,代码行数:55,


示例20: save_state

void save_state(void){	char *tmpdir;	char *fn;	FILE *fd;	int tidx;	tmpdir = xgetenv("XYMONTMP"); if (!tmpdir) tmpdir = "/tmp";	fn = (char *)malloc(strlen(tmpdir) + 100);	sprintf(fn, "%s/locator.servers.chk", tmpdir);	fd = fopen(fn, "w");	if (fd == NULL) {		errprintf("Cannot save state to %s: %s/n", fn, strerror(errno));		return;	}	for (tidx = 0; (tidx < ST_MAX); tidx++) {		const char *tname = servicetype_names[tidx];		xtreePos_t handle;		serverinfo_t *itm;		for (handle = xtreeFirst(sitree[tidx]); (handle != xtreeEnd(sitree[tidx])); handle = xtreeNext(sitree[tidx], handle)) {			itm = xtreeData(sitree[tidx], handle);			fprintf(fd, "%s|%s|%d|%d|%d|%s/n",				tname, itm->servername, itm->serverconfweight, itm->serveractualweight,				((itm->sticky == LOC_STICKY) ? 1 : 0), 				(itm->serverextras ? itm->serverextras : ""));		}	}	fclose(fd);	sprintf(fn, "%s/locator.hosts.chk", tmpdir);	fd = fopen(fn, "w");	if (fd == NULL) {		errprintf("Cannot save state to %s: %s/n", fn, strerror(errno));		return;	}	for (tidx = 0; (tidx < ST_MAX); tidx++) {		const char *tname = servicetype_names[tidx];		xtreePos_t handle;		hostinfo_t *itm;		for (handle = xtreeFirst(hitree[tidx]); (handle != xtreeEnd(hitree[tidx])); handle = xtreeNext(hitree[tidx], handle)) {			itm = xtreeData(hitree[tidx], handle);			if (itm->server) {				fprintf(fd, "%s|%s|%s/n",					tname, itm->hostname, itm->server->servername);			}		}	}	fclose(fd);}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:52,



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


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