当前位置: 首页>>代码示例>>C++>>正文


C++ cs_strncpy函数代码示例

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


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

示例1: fprintf_conf

/* Replacement of fprintf which adds necessary whitespace to fill up the varname to a fixed width.
  If varname is longer than CONFVARWIDTH, no whitespace is added*/
void fprintf_conf(FILE *f, const char *varname, const char *fmtstring, ...)
{
	int32_t varlen = strlen(varname);
	int32_t max = (varlen > CONFVARWIDTH) ? varlen : CONFVARWIDTH;
	char varnamebuf[max + 3];
	char *ptr = varnamebuf + varlen;
	va_list argptr;

	cs_strncpy(varnamebuf, varname, sizeof(varnamebuf));
	while(varlen < CONFVARWIDTH)
	{
		ptr[0] = ' ';
		++ptr;
		++varlen;
	}
	cs_strncpy(ptr, "= ", sizeof(varnamebuf) - (ptr - varnamebuf));
	if(fwrite(varnamebuf, sizeof(char), strlen(varnamebuf), f))
	{
		if(strlen(fmtstring) > 0)
		{
			va_start(argptr, fmtstring);
			vfprintf(f, fmtstring, argptr);
			va_end(argptr);
		}
	}
}
开发者ID:FFTEAM,项目名称:oscam-modern,代码行数:28,代码来源:oscam-conf.c

示例2: defined

/* Gets the tmp dir */
char *get_tmp_dir(void)
{
	if(cs_tmpdir[0])
		{ return cs_tmpdir; }
#if defined(__CYGWIN__)
	char *d = getenv("TMPDIR");
	if(!d || !d[0])
		{ d = getenv("TMP"); }
	if(!d || !d[0])
		{ d = getenv("TEMP"); }
	if(!d || !d[0])
		{ getcwd(cs_tmpdir, sizeof(cs_tmpdir) - 1); }

	cs_strncpy(cs_tmpdir, d, sizeof(cs_tmpdir));
	char *p = cs_tmpdir;
	while(*p) { p++; }
	p--;
	if(*p != '/' && *p != '\\')
		{ strcat(cs_tmpdir, "/"); }
	strcat(cs_tmpdir, "_oscam");
#else
	cs_strncpy(cs_tmpdir, "/tmp/.oscam", sizeof(cs_tmpdir));
#endif
	mkdir(cs_tmpdir, S_IRWXU);
	return cs_tmpdir;
}
开发者ID:FFTEAM,项目名称:oscam,代码行数:27,代码来源:oscam-files.c

示例3: main

int main(int argc, char**argv)
{
	int n, opt, port = 0, accountok = 0;
	struct sockaddr_in servaddr;
	socklen_t len;
	char mbuf[1000];
	unsigned char md5tmp[MD5_DIGEST_LENGTH];
	
	while ((opt = getopt(argc, argv, "a:p:")) != -1) {
		switch (opt) {
			case 'a': {
				char *ptr = strtok(optarg, ":");
				cs_strncpy((char *)&cl_user, ptr, sizeof(cl_user));
				ptr = strtok(NULL, ":");
				if(ptr) {
					cs_strncpy((char *)&cl_passwd, ptr, sizeof(cl_passwd));
					accountok = 1;
				}
				break;
			}
			case 'p':
				port = atoi(optarg);
				break;
			default:
				fprintf(stderr, "Usage: %s -a <user>:<password> -p <port>\n", argv[0]);
				exit(0);
		}
	}
	if(port == 0 || accountok == 0){
		fprintf(stderr, "Usage: %s -a <user>:<password> -p <port>\n", argv[0]);
		exit(0);
	}
	
	cl_sockfd = socket(AF_INET,SOCK_DGRAM,0);
	
	bzero(&servaddr,sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port = htons(port);
	bind(cl_sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
	
	aes_set_key(&cl_aes_keys, (char *) MD5(cl_passwd, strlen((char *)cl_passwd), md5tmp));
	
	for (;;){
		len = sizeof(cl_socket);
		n = recvfrom(cl_sockfd,mbuf,sizeof(mbuf),0,(struct sockaddr *)&cl_socket,&len);
		
		camd35_recv(mbuf, n);     
		
		if(mbuf[0] == 0 || mbuf[0] == 3) {
			camd35_process_ecm(mbuf, n);
		} else {
			cs_log("unknown/not implemented camd35 command! (%d) n=%d", mbuf[0], n);
		}
	}
}
开发者ID:JanGruuthuse,项目名称:OSEmu,代码行数:56,代码来源:OSEmu.c

示例4: monitor_send_info

static void monitor_send_info(char *txt, int32_t last)
{
	static int32_t seq=0, counter=0;
	static char btxt[256] = {0};
	char buf[8];
	if (txt)
	{
		if (!btxt[0])
		{
			counter=0;
			txt[2]='B';
		}
		else
			counter++;
		snprintf(buf, sizeof(buf), "%03d", counter);
		memcpy(txt+4, buf, 3);
		txt[3]='0'+seq;
	}
	else
		if (!last)
			return;

	if (!last)
	{
		if (btxt[0]) monitor_send(btxt);
		cs_strncpy(btxt, txt, sizeof(btxt));
		return;
	}

	if (txt && btxt[0])
	{
		monitor_send(btxt);
		txt[2]='E';
		cs_strncpy(btxt, txt, sizeof(btxt));
	}
	else
	{
		if (txt)
			cs_strncpy(btxt, txt, sizeof(btxt));
		btxt[2]=(btxt[2]=='B') ? 'S' : 'E';
	}

	if (btxt[0])
	{
		monitor_send(btxt);
		seq=(seq+1)%10;
	}
	btxt[0]=0;
}
开发者ID:kamyk11,项目名称:oscam,代码行数:49,代码来源:module-monitor.c

示例5: http_dyndns_fn

static void http_dyndns_fn(const char *token, char *value, void *UNUSED(setting), FILE *f)
{
	int i;
	if(value)
	{
		char *ptr, *saveptr1 = NULL;
		memset(cfg.http_dyndns, 0, sizeof(cfg.http_dyndns));
		for(i = 0, ptr = strtok_r(value, ",", &saveptr1); (i < MAX_HTTP_DYNDNS) && (ptr); ptr = strtok_r(NULL, ",", &saveptr1), i++)
		{
			trim(ptr);
			cs_strncpy((char *)cfg.http_dyndns[i], ptr, sizeof(cfg.http_dyndns[i]));
		}
		return;
	}
	if(strlen((const char *)(cfg.http_dyndns[0])) > 0 || cfg.http_full_cfg)
	{
		fprintf_conf(f, token, "%s", ""); // it should not have \n at the end
		for(i = 0; i < MAX_HTTP_DYNDNS; i++)
		{
			if(cfg.http_dyndns[i][0])
			{
				fprintf(f, "%s%s", i > 0 ? "," : "", cfg.http_dyndns[i]);
			}
		}
		fprintf(f, "\n");
	}
}
开发者ID:StbLinux,项目名称:oscam,代码行数:27,代码来源:oscam-config-global.c

示例6: monitor_process_details_master

static void monitor_process_details_master(char *buf, uint32_t pid){
	snprintf(buf, 256, "Version=%sr%s", CS_VERSION, CS_SVN_VERSION);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "System=%s", CS_TARGET);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "DebugLevel=%d", cs_dblevel);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "MaxClients=UNLIMITED");
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "ClientMaxIdle=%d sec", cfg.cmaxidle);
	monitor_send_details(buf, pid);
	if( cfg.max_log_size )
		snprintf(buf + 200, 56, "%d Kb", cfg.max_log_size);
	else
		cs_strncpy(buf + 200, "unlimited", 56);
	snprintf(buf, 256, "MaxLogsize=%s", buf + 200);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "ClientTimeout=%u ms", cfg.ctimeout);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "CacheDelay=%d ms", cfg.delay);
	monitor_send_details(buf, pid);
	if( cfg.cwlogdir ) {
                snprintf(buf, 256, "CwlogDir=%s", cfg.cwlogdir);
	        monitor_send_details(buf, pid);
        }
	if( cfg.preferlocalcards ) {
	        snprintf(buf, 256, "PreferlocalCards=%d", cfg.preferlocalcards);
	        monitor_send_details(buf, pid);
        }
	if( cfg.waitforcards ) {
	        snprintf(buf, 256, "WaitforCards=%d", cfg.waitforcards);
	        monitor_send_details(buf, pid);
        }
	snprintf(buf, 256, "LogFile=%s", cfg.logfile);
	monitor_send_details(buf, pid);
	if( cfg.mailfile ) {
	        snprintf(buf, 256, "MailFile=%s", cfg.mailfile);
	        monitor_send_details(buf, pid);
        }
	if( cfg.usrfile ) {
	        snprintf(buf, 256, "UsrFile=%s", cfg.usrfile);
	        monitor_send_details(buf, pid);
        }
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "Sleep=%d", cfg.tosleep);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "Monitorport=%d", cfg.mon_port);
	monitor_send_details(buf, pid);
	snprintf(buf, 256, "Nice=%d", cfg.nice);
	monitor_send_details(buf, pid);
#ifdef WEBIF
	snprintf(buf, 256, "Restartmode=%d", cs_get_restartmode());
	monitor_send_details(buf, pid);
#else
	snprintf(buf, 256, "Restartmode=%s", "no");
	monitor_send_details(buf, pid);
#endif

	//  monitor_send_details(buf, pid);
}
开发者ID:kamyk11,项目名称:oscam,代码行数:60,代码来源:module-monitor.c

示例7: reader_label_fn

static void reader_label_fn(const char *token, char *value, void *setting, FILE *f)
{
    struct s_reader *rdr = setting;
    if(value)
    {
        int i, found = 0;
        if(!strlen(value))
        {
            return;
        }
        for(i = 0; i < (int)strlen(value); i++)
        {
            if(value[i] == ' ')
            {
                value[i] = '_';
                found++;
            }
        }
        if(found)
        {
            fprintf(stderr, "Configuration reader: corrected label to %s\n", value);
        }
        cs_strncpy(rdr->label, value, sizeof(rdr->label));
        return;
    }
    fprintf_conf(f, token, "%s\n", rdr->label);
}
开发者ID:javilonas,项目名称:NCam,代码行数:27,代码来源:ncam-config-reader.c

示例8: device_fn

static void device_fn(const char *token, char *value, void *setting, FILE *f)
{
	struct s_reader *rdr = setting;
	int32_t isphysical = !is_network_reader(rdr);
	if(value)
	{
		int32_t i;
		char *ptr, *saveptr1 = NULL;
		for(i = 0, ptr = strtok_r(value, ",", &saveptr1); (i < 3) && (ptr); ptr = strtok_r(NULL, ",", &saveptr1), i++)
		{
			trim(ptr);
			switch(i)
			{
			case 0:
				cs_strncpy(rdr->device, ptr, sizeof(rdr->device));
				break;
			case 1:
				rdr->r_port = atoi(ptr);
				break;
			case 2:
				rdr->l_port = atoi(ptr);
				break;
			}
		}
		return;
	}
	fprintf_conf(f, token, "%s", rdr->device); // it should not have \n at the end
	if((rdr->r_port || cfg.http_full_cfg) && !isphysical)
		{ fprintf(f, ",%d", rdr->r_port); }
	if((rdr->l_port || cfg.http_full_cfg) && !isphysical && strncmp(reader_get_type_desc(rdr, 0), "cccam", 5))
		{ fprintf(f, ",%d", rdr->l_port); }
	fprintf(f, "\n");
}
开发者ID:Leatherface75,项目名称:enigma2pc,代码行数:33,代码来源:oscam-config-reader.c

示例9: init_oscam_ser_device

static int32_t init_oscam_ser_device(struct s_client *cl)
{
  char *device = cl->serialdata->oscam_ser_device;
  speed_t baud = cl->serialdata->oscam_ser_baud;
  int32_t port = cl->serialdata->oscam_ser_port;
  int32_t fd;

  // network connection to a TCP-exposed serial port
  if (port > 0)
  {
    cs_strncpy(cl->reader->device, device, sizeof(cl->reader->device));
    cl->reader->r_port = cl->port = port;
    fd = network_tcp_connection_open(cl->reader);
    if (fd < 0)
      return 0;
    else
      return fd;
  }
  else  // standard serial port connection
  {
    fd=open(device, O_RDWR | O_NOCTTY | O_SYNC | O_NONBLOCK);
    if (fd>0)
    {
      fcntl(fd, F_SETFL, 0);
      if (oscam_ser_set_serial_device(fd, baud)<0) cs_log("ERROR ioctl");
      if (tcflush(fd, TCIOFLUSH)<0) cs_log("ERROR flush");
    }
    else
    {
      fd=0;
      cs_log("ERROR opening %s (errno=%d %s)", device, errno, strerror(errno));
    }
    return(fd);
  }
}
开发者ID:TELE-TWIN,项目名称:oscam,代码行数:35,代码来源:module-serial.c

示例10: log_list_thread

void log_list_thread(void)
{
	char buf[LOG_BUF_SIZE];
	log_running = 1;
	set_thread_name(__func__);
	do
	{
		log_list_queued = 0;
		LL_ITER it = ll_iter_create(log_list);
		struct s_log *log;
		while((log = ll_iter_next_remove(&it)))
		{
			int8_t do_flush = ll_count(log_list) == 0; //flush on writing last element

			cs_strncpy(buf, log->txt, LOG_BUF_SIZE);
			if(log->direct_log)
				{ cs_write_log(buf, do_flush); }
			else
				{ write_to_log(buf, log, do_flush); }
			NULLFREE(log->txt);
			NULLFREE(log);
		}
		if(!log_list_queued)  // The list is empty, sleep until new data comes in and we are woken up
			sleepms_on_cond(&log_thread_sleep_cond_mutex, &log_thread_sleep_cond, 60 * 1000);
	}
	while(log_running);
	ll_destroy(log_list);
	log_list = NULL;
}
开发者ID:jackuzzy,项目名称:oscam_private,代码行数:29,代码来源:oscam-log.c

示例11: camd35_auth_client

static int32_t camd35_auth_client(struct s_client *cl, uchar *ucrc)
{
	int32_t rc = 1;
	uint32_t crc;
	struct s_auth *account;
	unsigned char md5tmp[MD5_DIGEST_LENGTH];

	if(cl->upwd[0])
		{ return (memcmp(cl->ucrc, ucrc, 4) ? 1 : 0); }
	cl->crypted = 1;
	crc = (((ucrc[0] << 24) | (ucrc[1] << 16) | (ucrc[2] << 8) | ucrc[3]) & 0xffffffffL);
	for(account = cfg.account; (account) && (!cl->upwd[0]); account = account->next)
		if(crc == crc32(0L, MD5((unsigned char *)account->usr, strlen(account->usr), md5tmp), MD5_DIGEST_LENGTH))
		{
			rc = cs_auth_client(cl, account, NULL);
			if(!rc)
			{
				memcpy(cl->ucrc, ucrc, 4);
				cs_strncpy((char *)cl->upwd, account->pwd, sizeof(cl->upwd));
				if (!aes_set_key_alloc(&cl->aes_keys, (char *) MD5(cl->upwd, strlen((char *)cl->upwd), md5tmp)))
				{
					return 1;
				}
				return 0;
			}
		}
	return (rc);
}
开发者ID:franz1994,项目名称:oscam,代码行数:28,代码来源:module-camd35.c

示例12: write_to_log_int

static void write_to_log_int(char *txt, int8_t header_len)
{
#if !defined(WEBIF) && !defined(MODULE_MONITOR)
	if(cfg.disablelog) { return; }
#endif
	char *newtxt = cs_strdup(txt);
	if(!newtxt)
		{ return; }
	struct s_log *log;
	if(!cs_malloc(&log, sizeof(struct s_log)))
	{
		NULLFREE(newtxt);
		return;
	}
	log->txt = newtxt;
	log->header_len = header_len;
	log->direct_log = 0;
	struct s_client *cl = cur_client();
	log->cl_usr = "";
	if(!cl)
	{
		log->cl_text = "undef";
		log->cl_typ = ' ';
	}
	else
	{
		switch(cl->typ)
		{
		case 'c':
		case 'm':
			if(cl->account)
			{
				log->cl_text = cl->account->usr;
				log->cl_usr = cl->account->usr;
			}
			else { log->cl_text = ""; }
			break;
		case 'p':
		case 'r':
			log->cl_text = cl->reader ? cl->reader->label : "";
			break;
		default:
			log->cl_text = "server";
			break;
		}
		log->cl_typ = cl->typ;
	}

	if(exit_oscam == 1 || cfg.disablelog)  //Exit or log disabled. if disabled, just display on webif/monitor
	{
		char buf[LOG_BUF_SIZE];
		cs_strncpy(buf, log->txt, LOG_BUF_SIZE);
		write_to_log(buf, log, 1);
		NULLFREE(log->txt);
		NULLFREE(log);
	}
	else
		{ log_list_add(log); }
}
开发者ID:jackuzzy,项目名称:oscam_private,代码行数:59,代码来源:oscam-log.c

示例13: pthread_attr_init

void *init_oscam_ser(struct s_client *UNUSED(cl), uchar *UNUSED(mbuf), int32_t module_idx)
{
	char sdevice[512];
	int32_t ret;
	struct s_thread_param param;
	pthread_attr_t attr;
	pthread_attr_init(&attr);
	pthread_attr_setstacksize(&attr, PTHREAD_STACK_SIZE);
	oscam_init_serialdata(&param.serialdata);
	if(cfg.ser_device)
		{ cs_strncpy(sdevice, cfg.ser_device, sizeof(sdevice)); }
	else
		{ memset(sdevice, 0, sizeof(sdevice)); }
	param.module_idx = module_idx;
	char *p;
	pthread_t temp;
	char cltype = 'c'; //now auto should work
	if(bcopy_end == -1)  //mutex should be initialized only once
	{
		pthread_mutex_init(&mutex, NULL);
		pthread_cond_init(&cond, NULL);
		bcopy_end = 0;
	}
	while((p = strrchr(sdevice, ';')))
	{
		*p = 0;
		if(!(p + 1) || (!(p + 1)[0])) { return NULL; }
		if(!oscam_ser_parse_url(p + 1, &param.serialdata, &cltype)) { return NULL; }
		ret = pthread_create(&temp, &attr, oscam_ser_fork, (void *) &param);
		if(ret)
		{
			cs_log("ERROR: can't create serial reader thread (errno=%d %s)", ret, strerror(ret));
			pthread_attr_destroy(&attr);
			return NULL;
		}
		else
		{
			oscam_wait_ser_fork();
			pthread_detach(temp);
		}
	}

	if(!sdevice[0]) { return NULL; }
	if(!oscam_ser_parse_url(sdevice, &param.serialdata, &cltype)) { return NULL; }
	ret = pthread_create(&temp, &attr, oscam_ser_fork, (void *) &param);
	if(ret)
	{
		cs_log("ERROR: can't create serial reader thread (errno=%d %s)", ret, strerror(ret));
		pthread_attr_destroy(&attr);
		return NULL;
	}
	else
	{
		oscam_wait_ser_fork();
		pthread_detach(temp);
	}
	pthread_attr_destroy(&attr);
	return NULL;
}
开发者ID:StbLinux,项目名称:oscam,代码行数:59,代码来源:module-serial.c

示例14: monitor_send_login

static void monitor_send_login(void){
	char buf[64];
	struct s_client *cur_cl = cur_client();
	if (cur_cl->auth && cur_cl->account)
		snprintf(buf, sizeof(buf), "[A-0000]1|%s logged in\n", cur_cl->account->usr);
	else
		cs_strncpy(buf, "[A-0000]0|not logged in\n", sizeof(buf));
	monitor_send_info(buf, 1);
}
开发者ID:kamyk11,项目名称:oscam,代码行数:9,代码来源:module-monitor.c

示例15: config_list_set_defaults

void config_list_set_defaults(const struct config_list *clist, void *config_data) {
	const struct config_list *c;
	for (c = clist; c->opt_type != OPT_UNKNOWN; c++) {
		void *var = config_data + c->var_offset;
		switch (c->opt_type) {
		case OPT_INT8: {
			*(int8_t *)var = c->def.d_int8;
			break;
		}
		case OPT_UINT8: {
			*(uint8_t *)var = c->def.d_uint8;
			break;
		}
		case OPT_INT32: {
			*(int32_t *)var = c->def.d_int32;
			break;
		}
		case OPT_UINT32: {
			*(uint32_t *)var = c->def.d_uint32;
			break;
		}
		case OPT_STRING: {
			char **scfg = var;
			NULLFREE(*scfg);
			if (c->def.d_char)
				*scfg = cs_strdup(c->def.d_char);
			break;
		}
		case OPT_SSTRING: {
			char *scfg = var;
			scfg[0] = '\0';
			if (c->def.d_char && strlen(c->def.d_char))
				cs_strncpy(scfg, c->def.d_char, c->str_size);
			break;
		}
		case OPT_HEX_ARRAY: {
			uint8_t *hex_array = var;
			memset(hex_array, 0, c->def.array_size);
			break;
		}
		case OPT_FUNC: {
			c->ops.process_fn((const char *)c->config_name, "", var, NULL);
			break;
		}
		case OPT_FUNC_EXTRA: {
			c->ops.process_fn_extra((const char *)c->config_name, "", var, c->def.d_extra, NULL);
			break;
		}
		case OPT_SAVE_FUNC:
		case OPT_FIXUP_FUNC:
		case OPT_UNKNOWN:
			continue;
		}
	}
	return;
}
开发者ID:kamyk11,项目名称:oscam,代码行数:56,代码来源:oscam-conf.c


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