这篇教程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_acksvoid 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_cookiesvoid 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_initvoid 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: sendmessagesendresult_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: servicecodestatic 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_cookiesvoid 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: mainint 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_diskliststatic 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_cfgYBORM_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: errormsgvoid 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_optsvoid 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: mainint 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_cgilogvoid 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_extensionsvoid 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: getenvchar *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_signalhandlervoid 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_statevoid 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函数代码示例 |