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

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

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

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

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

示例1: ini_get_var

//// ini_get_var() ////void* ini_get_var(const ini_cfg_t* cfg, int cur_section, char* buf){  int i=0, j=0;  int var_id = -1;  // find var  while(1) {    if (buf[i] == '=') {      buf[i] = '/0';      break;    } else if (buf[i] == '/0') return (void*)0;    i++;  }  // convert to uppercase  for (j=0; j<=i; j++) {    if (!buf[j]) break;    else buf[j] = CHAR_TO_UPPERCASE(buf[j]);  }  // parse var  for (j=0; j<cfg->nvars; j++) {    if ((!strcmp(buf, cfg->vars[j].name)) && (cfg->vars[j].section_id == cur_section)) var_id = j;  }  // get data  if (var_id != -1) {    ini_parser_debugf("Got VAR '%s' with VALUE %s", buf, &(buf[i+1]));    i++;    switch (cfg->vars[var_id].type) {      case UINT8:        *(uint8_t*)(cfg->vars[var_id].var) = strtoul(&(buf[i]), NULL, 0);        if (*(uint8_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(uint8_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(uint8_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(uint8_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;      case INT8:        *(int8_t*)(cfg->vars[var_id].var) = strtol(&(buf[i]), NULL, 0);        if (*(int8_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(int8_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(int8_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(int8_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;      case UINT16:        *(uint8_t*)(cfg->vars[var_id].var) = strtoul(&(buf[i]), NULL, 0);        if (*(uint16_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(uint16_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(uint16_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(uint16_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;      case INT16:        *(int16_t*)(cfg->vars[var_id].var) = strtol(&(buf[i]), NULL, 0);        if (*(int16_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(int16_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(int16_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(int16_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;      case UINT32:        *(uint8_t*)(cfg->vars[var_id].var) = strtoul(&(buf[i]), NULL, 0);        if (*(uint32_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(uint32_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(uint32_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(uint32_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;      case INT32:        *(int32_t*)(cfg->vars[var_id].var) = strtol(&(buf[i]), NULL, 0);        if (*(int32_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(int32_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(int32_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(int32_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;#ifdef INI_ENABLE_FLOAT      case FLOAT:        *(float*)(cfg->vars[var_id].var) = strtof(&(buf[i]), NULL);        if (*(float*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(float*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;        if (*(float*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(float*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;        break;#endif      case STRING:        strncpy((char*)(cfg->vars[var_id].var), &(buf[i]), cfg->vars[var_id].max);        break;      case CUSTOM_HANDLER:        ((custom_handler_t*)(cfg->vars[var_id].var))(&(buf[i]));	break;    }    return (void*)(&(cfg->vars[var_id].var));  }  return (void*)0;}
开发者ID:ThomasDerZweifler,项目名称:mist-board,代码行数:80,


示例2: udp_parse_remote

static int udp_parse_remote (int link, char * premote)  {    // This routine will parse a remote address string in any of these forms -    //    //            llll:w.x.y.z:rrrr    //            llll:name.domain.com:rrrr    //            llll::rrrr    //            w.x.y.z:rrrr    //            name.domain.com:rrrr    //    // In all examples, "llll" is the local port number that we use for listening,    // and "rrrr" is the remote port number that we use for transmitting.  The    // local port is optional and may be omitted, in which case it defaults to the    // same as the remote port.  This works fine if the other IMP is actually on    // a different host, but don't try that with localhost - you'll be talking to    // yourself!!  In both cases, "w.x.y.z" is a dotted IP for the remote machine    // and "name.domain.com" is its name (which will be looked up to get the IP).    // If the host name/IP is omitted then it defaults to "localhost".      char * end;    int32_t lportno, rport;    char host [64], port [16];    if (* premote == '/0')      return -1;    memset (udp_links [link] . lport, 0, sizeof (udp_links [link] . lport));    memset (udp_links [link] . rhost, 0, sizeof (udp_links [link] . rhost));    memset (udp_links [link] . rport, 0, sizeof (udp_links [link] . rport));    // Handle the llll::rrrr case first    if (2 == sscanf (premote, "%d::%d", & lportno, & rport))      {        if ((lportno < 1) || (lportno >65535) || (rport < 1) || (rport >65535))         return -1;        sprintf (udp_links [link] . lport, "%d", lportno);        udp_links [link] . lportno =  lportno;        sprintf (udp_links [link] . rhost, "localhost");        sprintf (udp_links [link] . rport, "%d", rport);        udp_links [link] . rportno = rport;        return 0;      }    // Look for the local port number and save it away.    lportno = strtoul (premote, & end, 10);    if ((* end == ':') && (lportno > 0))      {        sprintf (udp_links [link] . lport, "%d", lportno);        udp_links [link] . lportno =  lportno;        premote = end + 1;      }      if (sim_parse_addr (premote, host, sizeof (host), "localhost", port, sizeof (port), NULL, NULL))      return -1;    sprintf (udp_links [link] . rhost, "%s", host);    sprintf (udp_links [link] . rport, "%s", port);    udp_links [link] . rportno = atoi (port);    if (udp_links [link] . lport [0] == '/0')      {        strcpy (udp_links [link] . lport, port);        udp_links [link] . lportno =  atoi (port);      }    if ((strcmp (udp_links [link] . lport, port) == 0) &&        (strcmp ("localhost", host) == 0))      fprintf (stderr, "WARNING - use different transmit and receive ports!/n");      return 0;  }
开发者ID:charlesUnixPro,项目名称:DATANET6600,代码行数:65,


示例3: scontrol_callerid

extern int scontrol_callerid(int argc, char **argv){	int af, ver = 4;	unsigned char ip_src[sizeof(struct in6_addr)],		      ip_dst[sizeof(struct in6_addr)];	uint32_t port_src, port_dst, job_id;	network_callerid_msg_t req;	char node_name[MAXHOSTNAMELEN], *ptr;	if (argc == 5) {		ver = strtoul(argv[4], &ptr, 0);		if (ptr && ptr[0]) {			error("Address family not an integer");			return SLURM_ERROR;		}	}	if (ver != 4 && ver != 6) {		error("Invalid address family: %d", ver);		return SLURM_ERROR;	}	af = ver == 4 ? AF_INET : AF_INET6;	if (!inet_pton(af, argv[0], ip_src)) {		error("inet_pton failed for '%s'", argv[0]);		return SLURM_ERROR;	}	port_src = strtoul(argv[1], &ptr, 0);	if (ptr && ptr[0]) {		error("Source port not an integer");		return SLURM_ERROR;	}	if (!inet_pton(af, argv[2], ip_dst)) {		error("scontrol_callerid: inet_pton failed for '%s'", argv[2]);		return SLURM_ERROR;	}	port_dst = strtoul(argv[3], &ptr, 0);	if (ptr && ptr[0]) {		error("Destination port not an integer");		return SLURM_ERROR;	}	memcpy(req.ip_src, ip_src, 16);	memcpy(req.ip_dst, ip_dst, 16);	req.port_src = port_src;	req.port_dst = port_dst;	req.af = af;	if (slurm_network_callerid(req, &job_id, node_name, MAXHOSTNAMELEN)			!= SLURM_SUCCESS) {		fprintf(stderr,			"slurm_network_callerid: unable to retrieve callerid data from remote slurmd/n");		return SLURM_FAILURE;	} else if (job_id == (uint32_t)NO_VAL) {		fprintf(stderr,			"slurm_network_callerid: remote job id indeterminate/n");		return SLURM_FAILURE;	} else {		printf("%u %s/n", job_id, node_name);		return SLURM_SUCCESS;	}}
开发者ID:diorsman,项目名称:slurm,代码行数:65,


示例4: cmd_write

static int cmd_write(PROGRAMMER * pgm, struct avrpart * p,		     int argc, char * argv[]){  char * e;  int len, maxsize;  char * memtype;  unsigned long addr, i;  unsigned char * buf;  unsigned char b;  int rc;  int werror;  AVRMEM * mem;  if (argc < 4) {    fprintf(stderr, "Usage: write <memtype> <addr> <byte1> "            "<byte2> ... byteN>/n");    return -1;  }  memtype = argv[1];  mem = avr_locate_mem(p, memtype);  if (mem == NULL) {    fprintf(stderr, "/"%s/" memory type not defined for part /"%s/"/n",            memtype, p->desc);    return -1;  }  maxsize = mem->size;  addr = strtoul(argv[2], &e, 0);  if (*e || (e == argv[2])) {    fprintf(stderr, "%s (write): can't parse address /"%s/"/n",            progname, argv[2]);    return -1;  }  if (addr > maxsize) {    fprintf(stderr,             "%s (write): address 0x%05lx is out of range for %s memory/n",            progname, addr, memtype);    return -1;  }  /* number of bytes to write at the specified address */  len = argc - 3;  if ((addr + len) > maxsize) {    fprintf(stderr,             "%s (write): selected address and # bytes exceed "            "range for %s memory/n",             progname, memtype);    return -1;  }  buf = malloc(len);  if (buf == NULL) {    fprintf(stderr, "%s (write): out of memory/n", progname);    return -1;  }  for (i=3; i<argc; i++) {    buf[i-3] = strtoul(argv[i], &e, 0);    if (*e || (e == argv[i])) {      fprintf(stderr, "%s (write): can't parse byte /"%s/"/n",              progname, argv[i]);      free(buf);      return -1;    }  }  pgm->err_led(pgm, OFF);  for (werror=0, i=0; i<len; i++) {    rc = avr_write_byte(pgm, p, mem, addr+i, buf[i]);    if (rc) {      fprintf(stderr, "%s (write): error writing 0x%02x at 0x%05lx, rc=%d/n",              progname, buf[i], addr+i, rc);      if (rc == -1)        fprintf(stderr,                 "write operation not supported on memory type /"%s/"/n",                mem->desc);      werror = 1;    }    rc = pgm->read_byte(pgm, p, mem, addr+i, &b);    if (b != buf[i]) {      fprintf(stderr,               "%s (write): error writing 0x%02x at 0x%05lx cell=0x%02x/n",              progname, buf[i], addr+i, b);      werror = 1;    }    if (werror) {      pgm->err_led(pgm, ON);    }  }  free(buf);//.........这里部分代码省略.........
开发者ID:JasonBeard,项目名称:usbprog5,代码行数:101,


示例5: job_will_run2

/* * job_will_run2 - Determine if, when and where a pending job can be *		   initiated with the currently running jobs either preempted *		   or left running as on other resources * cmd_ptr IN   - CMD=JOBWILLRUN ARG=<JOBID> [STARTTIME=<TIME>] *		  NODES=<AVAIL_NODES> [PREEMPT=<JOBID1>[,<JOBID2> ..]] * err_code OUT - 0 on success or some error code * err_msg OUT  - error message if any of the specified jobs can not be started *		  at the specified time (if given) on the available nodes. *		  Otherwise information on when and where the pending jobs *		  will be initiated *                ARG=<JOBID> TASKS=<CPU_COUNT> STARTTIME=<TIME> *			NODES=<USED_NODES> [PREEMPT=<JOBID1>[,<JOBID2> ..]] * NOTE: xfree() err_msg if err_code is zero * RET 0 on success, -1 on failure */extern int	job_will_run2(char *cmd_ptr, int *err_code, char **err_msg){	char *arg_ptr, *buf, *tmp_buf, *tmp_char;	int preemptee_cnt = 0;	uint32_t jobid, *preemptee = NULL, tmp_id;	time_t start_time;	char *avail_nodes = NULL;	/* Locks: write job, read node and partition info */	slurmctld_lock_t job_write_lock = {		NO_LOCK, WRITE_LOCK, READ_LOCK, READ_LOCK, NO_LOCK };	arg_ptr = strstr(cmd_ptr, "ARG=");	if (arg_ptr == NULL) {		*err_code = -300;		*err_msg = "JOBWILLRUN lacks ARG";		error("wiki: JOBWILLRUN lacks ARG");		return -1;	}	arg_ptr += 4;	jobid = strtoul(arg_ptr, &tmp_char, 10);	if ((tmp_char[0] != ' ') && (tmp_char[0] != '/0')) {		*err_code = -300;		*err_msg = "Invalid ARG value";		error("wiki: JOBWILLRUN has invalid ARG value");		return -1;	}	arg_ptr = strstr(cmd_ptr, "STARTTIME=");	if (arg_ptr) {		arg_ptr += 10;		start_time = strtoul(arg_ptr, &tmp_char, 10);		if ((tmp_char[0] != ' ') && (tmp_char[0] != '/0')) {			*err_code = -300;			*err_msg = "Invalid STARTTIME value";			error("wiki: JOBWILLRUN has invalid STARTTIME value");			return -1;		}	} else {		start_time = time(NULL);	}	arg_ptr = strstr(cmd_ptr, "PREEMPT=");	if (arg_ptr) {		arg_ptr += 8;		preemptee = xmalloc(sizeof(uint32_t) * strlen(arg_ptr));		while (1) {			tmp_id = strtoul(arg_ptr, &tmp_char, 10);			if ((tmp_char[0] != ' ') && (tmp_char[0] != '/0') &&			    (tmp_char[0] != ',')) {				*err_code = -300;				*err_msg = "Invalid PREEMPT value";				error("wiki: JOBWILLRUN has invalid PREEMPT "				      "value");				xfree(preemptee);				xfree(avail_nodes);				return -1;			}			preemptee[preemptee_cnt++] = tmp_id;			if (tmp_char[0] != ',')				break;			arg_ptr = tmp_char + 1;		}	}	/* Keep this last, since we modify the input string */	arg_ptr = strstr(cmd_ptr, "NODES=");	if (arg_ptr) {		arg_ptr += 6;		avail_nodes = xstrdup(arg_ptr);		arg_ptr = strchr(avail_nodes, ' ');		if (arg_ptr)			arg_ptr[0] = '/0';	} else {		*err_code = -300;		*err_msg = "Missing NODES value";		error("wiki: JOBWILLRUN lacks NODES value");		xfree(preemptee);		return -1;	}	lock_slurmctld(job_write_lock);	buf = _will_run_test2(jobid, start_time, avail_nodes,			      preemptee, preemptee_cnt,//.........这里部分代码省略.........
开发者ID:Q-Leap-Networks,项目名称:qlustar-slurm,代码行数:101,


示例6: ACConfig

void ACConfig(instance_parameter *ins_para,struct list *lpublic,struct list *lwcontrol,struct list *lwlan){	int ret = 0;     int flag = 1;	char *endptr = NULL;     char mtu[20] = { 0 };    char log_stat[20] = { 0 };    char log_size[20] = { 0 };	char ap_static_state[5] = { 0 };	int static_state = 0;	char ac_exten_infor_switch[10] = { 0 };	char neidead_inter[10] = { 0 };	char asd_arp_listen_switch[10] = { 0 };	char asd_log_level[10] = { 0 };	char response_sta_probe_request[10] = { 0 };	char trap_level[5] = { 0 };	char warm_standby_type[10] = { 0 };	char warm_standby_addr[20] = { 0 };	char ip1[4] = { 0 };	char ip2[4] = { 0 };	char ip3[4] = { 0 };	char ip4[4] = { 0 };	char add_ac_listen_if[50] = { 0 };	char del_ac_listen_if[50] = { 0 };	char user_set_vlan[10] = { 0 };	char country_code[5] = { 0 };	char temp[100] = { 0 };	char max_wlan_num[10] = { 0 };	char max_wtp_num[10] = { 0 };	char max_radio_num[10] = { 0 };	/***********************set wid max mtu*****************************/	    memset(mtu,0,sizeof(mtu));	cgiFormStringNoNewlines("mtu",mtu,20);       if(strcmp(mtu,"")!=0)  	{		ret = config_wireless_max_mtu(ins_para->parameter,ins_para->connection,mtu);		switch(ret)		{			case -1:ShowAlert(search(lwcontrol,"mtu_num"));					flag = 0;					break;			case 1: break;			case -2:ShowAlert(search(lpublic,"oper_fail"));					flag = 0;					break;						}    }    /***********************set wid log switch*****************************/		    memset(log_stat,0,sizeof(log_stat));    cgiFormStringNoNewlines("log",log_stat,20); 	if(strcmp(log_stat,"")!=0)		{		ret = set_wid_log_switch_cmd(ins_para->parameter,ins_para->connection,log_stat);		switch(ret)		{			case 1:break;			case -1:ShowAlert(search(lpublic,"oper_fail"));					flag = 0;					break;		}	}	/***********************set wid log switch*****************************/		    memset(log_size,0,sizeof(log_size));	cgiFormStringNoNewlines("log_size",log_size,20); 	if(strcmp(log_size,"")!=0)	 	{		ret = set_wid_log_size_cmd(ins_para->parameter,ins_para->connection,log_size);		switch(ret)		{			case -1:flag = 0;				    ShowAlert(search(lwcontrol,"log_num"));				    break;			case 1:break;			case -2:flag = 0;					ShowAlert(search(lpublic,"oper_fail"));					break;		} 	}	/***********************set ap statistics switch*****************************/		    memset(ap_static_state,0,sizeof(ap_static_state));	cgiFormStringNoNewlines("ap_static_state",ap_static_state,5); 	if(strcmp(ap_static_state,"")!=0)	 	{ 		static_state = strtoul(ap_static_state,&endptr,10);		ret = set_ap_statistics(ins_para->parameter,ins_para->connection,static_state);		switch(ret)		{			case SNMPD_CONNECTION_ERROR:			case 0:flag = 0;				   ShowAlert(search(lwcontrol,"con_static_state_fail"));				    break;			case 1:break;			case -1:flag = 0;//.........这里部分代码省略.........
开发者ID:inibir,项目名称:daemongroup,代码行数:101,


示例7: agent_run

static void agent_run(unsigned const char key[KDF_HASH_LEN]){	_cleanup_free_ char *path;	char *agent_timeout_str;	unsigned int agent_timeout;	struct sockaddr_un sa, listensa;	struct ucred cred;	int fd, listenfd;	socklen_t len;	signal(SIGHUP, agent_cleanup);	signal(SIGINT, agent_cleanup);	signal(SIGQUIT, agent_cleanup);	signal(SIGTERM, agent_cleanup);	signal(SIGALRM, agent_cleanup);	agent_timeout_str = getenv("LPASS_AGENT_TIMEOUT");	agent_timeout = 60 * 60; /* One hour by default. */	if (agent_timeout_str && strlen(agent_timeout_str))		agent_timeout = strtoul(agent_timeout_str, NULL, 10);	if (agent_timeout)		alarm(agent_timeout);	path = agent_socket_path();	if (strlen(path) >= sizeof(sa.sun_path))		die("Path too large for agent control socket.");	fd = socket(AF_UNIX, SOCK_STREAM, 0);	memset(&sa, 0, sizeof(sa));	sa.sun_family = AF_UNIX;	strlcpy(sa.sun_path, path, sizeof(sa.sun_path));	unlink(path);	if (bind(fd, (struct sockaddr *)&sa, SUN_LEN(&sa)) < 0 || listen(fd, 16) < 0) {		listenfd = errno;		close(fd);		unlink(path);		errno = listenfd;		die_errno("bind|listen");	}	for (len = sizeof(listensa); (listenfd = accept(fd, (struct sockaddr *)&listensa, &len)) > 0; len = sizeof(listensa)) {		if (agent_socket_get_cred(listenfd, &cred) < 0) {			close(listenfd);			continue;		}		if (cred.uid != getuid() || cred.gid != getgid() || !process_is_same_executable(cred.pid)) {			close(listenfd);			continue;		}#if SOCKET_SEND_PID == 1		pid_t pid = getpid();		IGNORE_RESULT(write(listenfd, &pid, sizeof(pid)));#endif		IGNORE_RESULT(write(listenfd, key, KDF_HASH_LEN));		close(listenfd);	}	listenfd = errno;	close(fd);	unlink(path);	errno = listenfd;	die_errno("accept");}
开发者ID:JBTech,项目名称:lastpass-cli,代码行数:66,


示例8: sprintf

bool ASessionDescription::getDimensions(        size_t index, unsigned long PT,        int32_t *width, int32_t *height) const {    *width = 0;    *height = 0;    char key[20];    sprintf(key, "a=framesize:%lu", PT);    AString value;    if (!findAttribute(index, key, &value)) {#ifndef ANDROID_DEFAULT_CODE         // try to get dimensions from cliprect if no framesize        strcpy(key, "a=cliprect");        if (!findAttribute(index, key, &value)) {            ALOGW("no framesize and cliprect, try Width/Height");            strcpy(key, "a=Width");            if (!findAttribute(index, key, &value)) {                return false;            }            int w = parseString(value.c_str());            strcpy(key, "a=Height");            if (!findAttribute(index, key, &value)) {                return false;            }            int h = parseString(value.c_str());            if (w > 0 && h > 0) {                *width = w;                *height = h;                return true;            }            return false;        }        const char *s = value.c_str();        int a = -1, b = -1, c = -1, d = -1;        sscanf(s, "%d,%d,%d,%d", &a, &b, &c, &d);        if (a == -1 || b == -1 || c == -1 || d == -1)            return false;        *height = c - a;        *width = d - b;        return true;#else        return false;#endif // #ifndef ANDROID_DEFAULT_CODE    }    const char *s = value.c_str();    char *end;    *width = strtoul(s, &end, 10);    CHECK_GT(end, s);    CHECK_EQ(*end, '-');    s = end + 1;    *height = strtoul(s, &end, 10);    CHECK_GT(end, s);    CHECK_EQ(*end, '/0');    return true;}
开发者ID:Jiangyi,项目名称:12055,代码行数:61,


示例9: CHECK

bool ASessionDescription::getDurationUs(int64_t *durationUs) const {    *durationUs = 0;    CHECK(mIsValid);    AString value;    if (!findAttribute(0, "a=range", &value)) {        return false;    }#ifndef ANDROID_DEFAULT_CODE     if (strncmp(value.c_str(), "npt=", 4) && strncmp(value.c_str(), "npt:", 4)) {#else    if (strncmp(value.c_str(), "npt=", 4)) {#endif // #ifndef ANDROID_DEFAULT_CODE        return false;    }    float from, to;    if (!parseNTPRange(value.c_str() + 4, &from, &to)) {        return false;    }    *durationUs = (int64_t)((to - from) * 1E6);    return true;}// staticvoid ASessionDescription::ParseFormatDesc(        const char *desc, int32_t *timescale, int32_t *numChannels) {    const char *slash1 = strchr(desc, '/');    CHECK(slash1 != NULL);    const char *s = slash1 + 1;    char *end;    unsigned long x = strtoul(s, &end, 10);    CHECK_GT(end, s);    CHECK(*end == '/0' || *end == '/');    *timescale = x;    *numChannels = 1;    if (*end == '/') {        s = end + 1;        unsigned long x = strtoul(s, &end, 10);        CHECK_GT(end, s);        CHECK_EQ(*end, '/0');        *numChannels = x;    }}// staticbool ASessionDescription::parseNTPRange(        const char *s, float *npt1, float *npt2) {    if (s[0] == '-') {        return false;  // no start time available.    }    if (!strncmp("now", s, 3)) {        return false;  // no absolute start time available    }    char *end;    *npt1 = strtof(s, &end);    if (end == s || *end != '-') {        // Failed to parse float or trailing "dash".        return false;    }    s = end + 1;  // skip the dash.    if (!strncmp("now", s, 3)) {        return false;  // no absolute end time available    }    *npt2 = strtof(s, &end);	#ifndef ANDROID_DEFAULT_CODE	//We support range string as "Range: npt=1.0000-"	return true;#else	if (end == s || *end != '/0') {		return false;	}	return *npt2 > *npt1;#endif}#ifndef ANDROID_DEFAULT_CODE bool ASessionDescription::getBitrate(size_t index, int32_t* bitrate) const {    char key[] = "b=AS";    AString value;    if (!findAttribute(index, key, &value))        return false;    int32_t b = atoi(value.c_str());    b *= 1000;    if (b < 0)//.........这里部分代码省略.........
开发者ID:Jiangyi,项目名称:12055,代码行数:101,


示例10: bad

void bad(){    size_t data;    /* define a function pointer */    void (*funcPtr) (size_t) = badSink;    /* Initialize data */    data = 0;    {#ifdef _WIN32        WSADATA wsaData;        int wsaDataInit = 0;#endif        int recvResult;        struct sockaddr_in service;        SOCKET listenSocket = INVALID_SOCKET;        SOCKET acceptSocket = INVALID_SOCKET;        char inputBuffer[CHAR_ARRAY_SIZE];        do        {#ifdef _WIN32            if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR)            {                break;            }            wsaDataInit = 1;#endif            /* POTENTIAL FLAW: Read data using a listen socket */            listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);            if (listenSocket == INVALID_SOCKET)            {                break;            }            memset(&service, 0, sizeof(service));            service.sin_family = AF_INET;            service.sin_addr.s_addr = INADDR_ANY;            service.sin_port = htons(TCP_PORT);            if (bind(listenSocket, (struct sockaddr*)&service, sizeof(service)) == SOCKET_ERROR)            {                break;            }            if (listen(listenSocket, LISTEN_BACKLOG) == SOCKET_ERROR)            {                break;            }            acceptSocket = accept(listenSocket, NULL, NULL);            if (acceptSocket == SOCKET_ERROR)            {                break;            }            /* Abort on error or the connection was closed */            recvResult = recv(acceptSocket, inputBuffer, CHAR_ARRAY_SIZE - 1, 0);            if (recvResult == SOCKET_ERROR || recvResult == 0)            {                break;            }            /* NUL-terminate the string */            inputBuffer[recvResult] = '/0';            /* Convert to unsigned int */            data = strtoul(inputBuffer, NULL, 0);        }        while (0);        if (listenSocket != INVALID_SOCKET)        {            CLOSE_SOCKET(listenSocket);        }        if (acceptSocket != INVALID_SOCKET)        {            CLOSE_SOCKET(acceptSocket);        }#ifdef _WIN32        if (wsaDataInit)        {            WSACleanup();        }#endif    }    /* use the function pointer */    funcPtr(data);}
开发者ID:maurer,项目名称:tiamat,代码行数:79,


示例11: loadimage

static bool loadimage(        struct userdata *ud,        char const      *restrict filename,        char const      *restrict taddr){  mc6809addr__t  addr;  FILE          *fp;  char          *ro;  int            c;    assert(ud       != NULL);  assert(filename != NULL);  assert(taddr    != NULL);    addr = strtoul(taddr,&ro,16);  if (*ro != 'r')    ro = NULL;      fp = fopen(filename,"rb");  if (fp == NULL)    return false;      while((c = fgetc(fp)) != EOF)  {    ud->memory[addr] = c;    if (ro)      ud->readonly[addr] = true;    addr++;  }  
开发者ID:spc476,项目名称:mc6809,代码行数:30,


示例12: Sv_Connect_f

/* * @brief A connection request that did not come from the master. */static void Sv_Connect_f(void) {	char user_info[MAX_USER_INFO_STRING];	sv_client_t *cl, *client;	int32_t i;	Com_Debug("Svc_Connect()/n");	net_addr_t *addr = &net_from;	const int32_t version = strtol(Cmd_Argv(1), NULL, 0);	// resolve protocol	if (version != PROTOCOL_MAJOR) {		Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nServer is version %d./n",		PROTOCOL_MAJOR);		return;	}	const uint8_t qport = strtoul(Cmd_Argv(2), NULL, 0);	const uint32_t challenge = strtoul(Cmd_Argv(3), NULL, 0);	// copy user_info, leave room for ip stuffing	g_strlcpy(user_info, Cmd_Argv(4), sizeof(user_info) - 25);	if (*user_info == '/0') { // catch empty user_info		Com_Print("Empty user_info from %s/n", Net_NetaddrToString(addr));		Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nConnection refused/n");		return;	}	if (strchr(user_info, '/xFF')) { // catch end of message in string exploit		Com_Print("Illegal user_info contained xFF from %s/n", Net_NetaddrToString(addr));		Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nConnection refused/n");		return;	}	if (strlen(GetUserInfo(user_info, "ip"))) { // catch spoofed ips		Com_Print("Illegal user_info contained ip from %s/n", Net_NetaddrToString(addr));		Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nConnection refused/n");		return;	}	if (!ValidateUserInfo(user_info)) { // catch otherwise invalid user_info		Com_Print("Invalid user_info from %s/n", Net_NetaddrToString(addr));		Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nConnection refused/n");		return;	}	// force the ip so the game can filter on it	SetUserInfo(user_info, "ip", Net_NetaddrToString(addr));	// enforce a valid challenge to avoid denial of service attack	for (i = 0; i < MAX_CHALLENGES; i++) {		if (Net_CompareClientNetaddr(addr, &svs.challenges[i].addr)) {			if (challenge == svs.challenges[i].challenge) {				svs.challenges[i].challenge = 0;				break; // good			}			Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nBad challenge/n");			return;		}	}	if (i == MAX_CHALLENGES) {		Com_Print("Connection without challenge from %s/n", Net_NetaddrToString(addr));		Netchan_OutOfBandPrint(NS_UDP_SERVER, addr, "print/nNo challenge for address/n");		return;	}	// resolve the client slot	client = NULL;	// first check for an ungraceful reconnect (client crashed, perhaps)	for (i = 0, cl = svs.clients; i < sv_max_clients->integer; i++, cl++) {		const net_chan_t *ch = &cl->net_chan;		if (cl->state == SV_CLIENT_FREE) // not in use, not interested			continue;		// the base address and either the qport or real port must match		if (Net_CompareClientNetaddr(addr, &ch->remote_address)) {			if (addr->port == ch->remote_address.port || qport == ch->qport) {				client = cl;				break;			}		}	}	// otherwise, treat as a fresh connect to a new slot	if (!client) {		for (i = 0, cl = svs.clients; i < sv_max_clients->integer; i++, cl++) {			if (cl->state == SV_CLIENT_FREE && !cl->entity->ai) { // we have a free one				client = cl;				break;			}//.........这里部分代码省略.........
开发者ID:chrisnew,项目名称:quetoo,代码行数:101,


示例13: miniopt

/* ----------------------------------------------------------------------- */intminiopt(miniopt_t *t, char **argv){	int keylen;	char *p, *eq, *valstr, *endptr = NULL;	int err = 0;	t->consumed = 0;	t->positional = FALSE;	memset(t->key, 0, MINIOPT_MAXKEY);	t->opt = '/0';	t->valstr = NULL;	t->good_int = FALSE;	valstr = NULL;	if (*argv == NULL) {		err = -1;		goto exit;	}	p = *argv++;	t->consumed++;	if (!t->opt_end && !strcmp(p, "--")) {		t->opt_end = TRUE;		if (*argv == NULL) {			err = -1;			goto exit;		}		p = *argv++;		t->consumed++;	}	if (t->opt_end) {		t->positional = TRUE;		valstr = p;	}	else if (!strncmp(p, "--", 2)) {		eq = strchr(p, '=');		if (eq == NULL && !t->longflags) {			fprintf(stderr,				"%s: missing /" = /" in long param /"%s/"/n", t->name, p);			err = 1;			goto exit;		}		keylen = eq ? (eq - (p + 2)) : (int)strlen(p) - 2;		if (keylen > 63) keylen = 63;		memcpy(t->key, p + 2, keylen);		if (eq) {			valstr = eq + 1;			if (*valstr == '/0') {				fprintf(stderr,				        "%s: missing value after /" = /" in long param /"%s/"/n",				        t->name, p);				err = 1;				goto exit;			}		}	}	else if (!strncmp(p, "-", 1)) {		t->opt = p[1];		if (strlen(p) > 2) {			fprintf(stderr,				"%s: only single char options, error on param /"%s/"/n",				t->name, p);			err = 1;			goto exit;		}		if (strchr(t->flags, t->opt)) {			/* this is a flag option, no value expected */			valstr = NULL;		} else {			if (*argv == NULL) {				fprintf(stderr,				"%s: missing value parameter after /"%s/"/n", t->name, p);				err = 1;				goto exit;			}			valstr = *argv;			argv++;			t->consumed++;		}	} else {		t->positional = TRUE;		valstr = p;	}	/* parse valstr as int just in case */	if (valstr) {		t->uval = (uint)strtoul(valstr, &endptr, 0);		t->val = (int)t->uval;		t->good_int = (*endptr == '/0');	}	t->valstr = valstr;exit:	if (err == 1)//.........这里部分代码省略.........
开发者ID:robcore,项目名称:Alucard-Kernel-jfltexx,代码行数:101,


示例14: addSource

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