这篇教程C++ str_alloc函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中str_alloc函数的典型用法代码示例。如果您正苦于以下问题:C++ str_alloc函数的具体用法?C++ str_alloc怎么用?C++ str_alloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了str_alloc函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: libwrap_initint libwrap_init() {#ifdef USE_PTHREAD int i, j, rfd, result; char servname[SERVNAME_LEN]; static int initialized=0; SERVICE_OPTIONS *opt; if(initialized) /* during startup or previous configuration file reload */ return 0; for(opt=service_options.next; opt; opt=opt->next) if(opt->option.libwrap) /* libwrap is enabled for this service */ break; if(!opt) /* disabled for all sections or inetd mode (no sections) */ return 0; num_processes=LIBWRAP_CLIENTS; ipc_socket=str_alloc(2*num_processes*sizeof(int)); busy=str_alloc(num_processes*sizeof(int)); for(i=0; i<num_processes; ++i) { /* spawn a child */ if(s_socketpair(AF_UNIX, SOCK_STREAM, 0, ipc_socket+2*i, 0, "libwrap_init")) return 1; switch(fork()) { case -1: /* error */ ioerror("fork"); return 1; case 0: /* child */ drop_privileges(0); /* libwrap processes are not chrooted */ close(0); /* stdin */ close(1); /* stdout */ if(!global_options.option.foreground) /* for logging in read_fd */ close(2); /* stderr */ for(j=0; j<=i; ++j) /* close parent-side sockets created so far */ close(ipc_socket[2*j]); while(1) { /* main libwrap child loop */ if(read_fd(ipc_socket[2*i+1], servname, SERVNAME_LEN, &rfd)<=0) _exit(0); result=check(servname, rfd); write(ipc_socket[2*i+1], (u8 *)&result, sizeof result); if(rfd>=0) close(rfd); } default: /* parent */ close(ipc_socket[2*i+1]); /* child-side socket */ } } initialized=1;#endif /* USE_PTHREAD */ return 0;}
开发者ID:nmacs,项目名称:lm3s-uclinux,代码行数:49,
示例2: win_logNOEXPORT void win_log(LPSTR line) { struct LIST *curr; int len; static int log_len=0; LPTSTR txt; txt=str2tstr(line); len=_tcslen(txt); /* this list is shared between threads */ curr=str_alloc(sizeof(struct LIST)+len*sizeof(TCHAR)); curr->len=len; _tcscpy(curr->txt, txt); str_free(txt); curr->next=NULL; if(tail) tail->next=curr; tail=curr; if(!head) head=tail; log_len++; while(log_len>LOG_LINES) { curr=head; head=head->next; /* this list is shared between threads */ str_free(curr); log_len--; } new_logs=1;}
开发者ID:pantheon-systems,项目名称:stunnel-dev,代码行数:31,
示例3: sockerrorstatic SOCKADDR_LIST *dynamic_remote_addr(CLI *c) {#ifdef SO_ORIGINAL_DST socklen_t addrlen=sizeof(SOCKADDR_UNION);#endif /* SO_ORIGINAL_DST */ /* check if the address was already set by a dynamic protocol * implemented protocols: CONNECT * protocols to be implemented: SOCKS4 */ if(c->connect_addr.num) return &c->connect_addr;#ifdef SO_ORIGINAL_DST if(c->opt->option.transparent_dst) { c->connect_addr.num=1; c->connect_addr.addr=str_alloc(sizeof(SOCKADDR_UNION)); if(getsockopt(c->local_rfd.fd, SOL_IP, SO_ORIGINAL_DST, c->connect_addr.addr, &addrlen)) { sockerror("setsockopt SO_ORIGINAL_DST"); longjmp(c->err, 1); } return &c->connect_addr; }#endif /* SO_ORIGINAL_DST */ if(c->opt->option.delayed_lookup) { if(!name2addrlist(&c->connect_addr, c->opt->connect_name, DEFAULT_LOOPBACK)) { s_log(LOG_ERR, "No host resolved"); longjmp(c->err, 1); } return &c->connect_addr; } return &c->opt->connect_addr; /* use pre-resolved (static) addresses */}
开发者ID:nmacs,项目名称:lm3s-uclinux,代码行数:35,
示例4: switchDISK_FILE *file_open(char *name, FILE_MODE mode) { DISK_FILE *df; LPTSTR tstr; HANDLE fh; DWORD desired_access, creation_disposition; /* open file */ switch(mode) { case FILE_MODE_READ: desired_access=FILE_READ_DATA; creation_disposition=OPEN_EXISTING; break; case FILE_MODE_APPEND: desired_access=FILE_APPEND_DATA; creation_disposition=OPEN_ALWAYS; break; case FILE_MODE_OVERWRITE: desired_access=FILE_WRITE_DATA; creation_disposition=CREATE_ALWAYS; break; default: /* invalid mode */ return NULL; } tstr=str2tstr(name); fh=CreateFile(tstr, desired_access, FILE_SHARE_READ, NULL, creation_disposition, FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL); str_free(tstr); /* str_free() overwrites GetLastError() value */ if(fh==INVALID_HANDLE_VALUE) return NULL; /* setup df structure */ df=str_alloc(sizeof df); df->fh=fh; return df;}
开发者ID:Jimdo,项目名称:stunnel,代码行数:35,
示例5: ioerrorDISK_FILE *file_open(char *name, int wr) { DISK_FILE *df; int fd, flags; /* open file */ if(wr) flags=O_CREAT|O_WRONLY|O_APPEND; else flags=O_RDONLY;#ifdef O_NONBLOCK flags|=O_NONBLOCK;#elif defined O_NDELAY flags|=O_NDELAY;#endif#ifdef O_CLOEXEC flags|=O_CLOEXEC;#endif /* O_CLOEXEC */ fd=open(name, flags, 0640); if(fd<0) { ioerror(name); return NULL; } /* setup df structure */ df=str_alloc(sizeof df); df->fd=fd; return df;}
开发者ID:nmacs,项目名称:lm3s-uclinux,代码行数:28,
示例6: log_timestatic void log_time(const int level, const char *txt, ASN1_TIME *t) {#ifndef HAVE_LIB_CYASSL char *cp; BIO *bio; int n; if(!t) return; bio=BIO_new(BIO_s_mem()); if(!bio) return; ASN1_TIME_print(bio, t); n=BIO_pending(bio); cp=str_alloc(n+1); n=BIO_read(bio, cp, n); if(n<0) { BIO_free(bio); str_free(cp); return; } cp[n]='/0'; BIO_free(bio); s_log(level, "%s: %s", txt, cp); str_free(cp);#else s_log(level, "%s: N/A", txt);#endif}
开发者ID:nmacs,项目名称:lm3s-uclinux,代码行数:28,
示例7: DISK_FILE *file_fdopen(int fd) { DISK_FILE *df; df=str_alloc(sizeof(DISK_FILE)); df->fd=fd; return df;}
开发者ID:amirmc,项目名称:signpost,代码行数:7,
示例8: longjmpchar *ssl_getline(CLI *c) { /* get newline-terminated string */ char *line; size_t ptr=0, allocated=32; line=str_alloc(allocated); for(;;) { if(ptr>65536) { /* >64KB --> DoS protection */ s_log(LOG_ERR, "ssl_getline: Line too long"); str_free(line); longjmp(c->err, 1); } if(allocated<ptr+1) { allocated*=2; line=str_realloc(line, allocated); } s_ssl_read(c, line+ptr, 1); if(line[ptr]=='/r') continue; if(line[ptr]=='/n') break; if(line[ptr]=='/0') break; ++ptr; } line[ptr]='/0'; s_log(LOG_DEBUG, " <- %s", line); return line;}
开发者ID:NickolasLapp,项目名称:stunnel,代码行数:28,
示例9: gtf_row_allocgtf_row_t* gtf_row_alloc(){ gtf_row_t* row = malloc_or_die(sizeof(gtf_row_t)); row->seqname = str_alloc(); row->source = str_alloc(); row->feature = str_alloc(); row->start = -1; row->end = -1; row->score = 0.0; row->strand = strand_na; row->frame = -1; row->attributes = str_map_create(); return row;}
开发者ID:dcjones,项目名称:seqsim,代码行数:16,
示例10: static CONTEXT *new_context(void) { static int next_id=1; CONTEXT *context; /* allocate and fill the CONTEXT structure */ context=str_alloc(sizeof(CONTEXT)); if(!context) { s_log(LOG_ERR, "Unable to allocate CONTEXT structure"); return NULL; } str_detach(context); context->id=next_id++; context->fds=NULL; context->ready=0; /* append to the tail of the ready queue */ context->next=NULL; if(ready_tail) ready_tail->next=context; ready_tail=context; if(!ready_head) ready_head=context; return context;}
开发者ID:madnessw,项目名称:thesnow,代码行数:25,
示例11: defined /* log the line to the UI (GUI, stderr, etc.) */ if(log_mode==LOG_MODE_ERROR || (log_mode==LOG_MODE_INFO && level<LOG_DEBUG) ||#if defined(USE_WIN32) || defined(USE_JNI) level<=opt->log_level#else (level<=opt->log_level && global_options.option.log_stderr)#endif ) ui_new_log(line); str_free(line);}#ifdef __GNUC__#pragma GCC diagnostic push#pragma GCC diagnostic ignored "-Wformat"#pragma GCC diagnostic ignored "-Wformat-extra-args"#endif /* __GNUC__ */char *log_id(CLI *c) { const char table[62]= "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; unsigned char rnd[22]; char *uniq; size_t i; unsigned long tid; switch(c->opt->log_id) { case LOG_ID_SEQUENTIAL: return str_printf("%llu", c->seq); case LOG_ID_UNIQUE: if(RAND_bytes(rnd, sizeof rnd)<=0) /* log2(62^22)=130.99 */ return str_dup("error"); for(i=0; i<sizeof rnd; ++i) { rnd[i]&=63; while(rnd[i]>=62) { if(RAND_bytes(rnd+i, 1)<=0) return str_dup("error"); rnd[i]&=63; } } uniq=str_alloc(sizeof rnd+1); for(i=0; i<sizeof rnd; ++i) uniq[i]=table[rnd[i]]; uniq[sizeof rnd]='/0'; return uniq; case LOG_ID_THREAD: tid=stunnel_thread_id(); if(!tid) /* currently USE_FORK */ tid=stunnel_process_id(); return str_printf("%lu", tid); } return str_dup("error");}
开发者ID:mtrojnar,项目名称:stunnel,代码行数:55,
示例12: file_putlineint file_putline(DISK_FILE *df, char *line) { int len; char *buff;#ifdef USE_WIN32 DWORD num;#else /* USE_WIN32 */ int num;#endif /* USE_WIN32 */ len=strlen(line); buff=str_alloc(len+2); /* +2 for CR+LF */ strcpy(buff, line);#ifdef USE_WIN32 buff[len++]='/r'; /* CR */#endif /* USE_WIN32 */ buff[len++]='/n'; /* LF */#ifdef USE_WIN32 WriteFile(df->fh, buff, len, &num, NULL);#else /* USE_WIN32 */ /* no file -> write to stderr */ num=write(df ? df->fd : 2, buff, len);#endif /* USE_WIN32 */ str_free(buff); return num;}
开发者ID:amirmc,项目名称:signpost,代码行数:25,
示例13: sslerror_logNOEXPORT void sslerror_log(unsigned long err, char *txt) { char *error_string; error_string=str_alloc(256); ERR_error_string_n(err, error_string, 256); s_log(LOG_ERR, "%s: %lX: %s", txt, err, error_string); str_free(error_string);}
开发者ID:NickolasLapp,项目名称:stunnel,代码行数:8,
示例14: switchchar *fd_getline(CLI *c, int fd) { char *line, *tmpline; int ptr=0, allocated=32; line=str_alloc(allocated); for(;;) { s_poll_init(c->fds); s_poll_add(c->fds, fd, 1, 0); /* read */ switch(s_poll_wait(c->fds, c->opt->timeout_busy, 0)) { case -1: sockerror("fd_getline: s_poll_wait"); str_free(line); longjmp(c->err, 1); /* error */ case 0: s_log(LOG_INFO, "fd_getline: s_poll_wait:" " TIMEOUTbusy exceeded: sending reset"); str_free(line); longjmp(c->err, 1); /* timeout */ case 1: break; /* OK */ default: s_log(LOG_ERR, "fd_getline: s_poll_wait: Unknown result"); str_free(line); longjmp(c->err, 1); /* error */ } if(allocated<ptr+1) { allocated*=2; line=str_realloc(line, allocated); } switch(readsocket(fd, line+ptr, 1)) { case -1: /* error */ sockerror("fd_getline: readsocket"); str_free(line); longjmp(c->err, 1); case 0: /* EOF */ s_log(LOG_ERR, "fd_getline: Unexpected socket close"); str_free(line); longjmp(c->err, 1); } if(line[ptr]=='/r') continue; if(line[ptr]=='/n') break; if(line[ptr]=='/0') break; if(++ptr>65536) { /* >64KB --> DoS protection */ s_log(LOG_ERR, "fd_getline: Line too long"); str_free(line); longjmp(c->err, 1); } } line[ptr]='/0'; tmpline=str_dup(line); safestring(tmpline); s_log(LOG_DEBUG, " <- %s", tmpline); str_free(tmpline); return line;}
开发者ID:Jimdo,项目名称:stunnel,代码行数:58,
示例15: RF_destroyvoid RF_destroy(RF_class *RF, WORD compact_threshold) { OD_link *link, *next; WORD lost_percent; ULONG lost_space, entry, nentries; RF_class *new_class, *old; BYTE *RF_filename, *temp_fn; if (RF->touched) { lseek(RF->file, 0L, SEEK_SET); r_write(RF->file, &RF->hdr, sizeof(RF_file_hdr)); } link = RF->root; while (link != NULL) { if (link->touched) { lseek(RF->file, link->origin, SEEK_SET); r_write(RF->file, &link->blk, sizeof(OD_block)); } next = link->next; mem_free(link); link = next; } close(RF->file); lost_space = RF->hdr.lost_space; lost_percent = (WORD) ((lost_space * 100L) / RF->hdr.file_size); RF_filename = str_alloc(RF->filename); mem_free(RF->filename); mem_free(RF); if (lost_space && (lost_percent >= compact_threshold)) { rename(RF_filename, temp_fn = temp_filename(NULL)); old = RF_construct(temp_fn, 0); new_class = RF_construct(RF_filename, 1); new_class->hdr.modify_time = old->hdr.modify_time; new_class->hdr.create_time = old->hdr.create_time; new_class->touched = 1; nentries = RF_entry_count(old); for (entry = 0; entry < nentries; entry++) { RF_new_entry(new_class, &old->file, RF_header(old, entry), RTYP_HOUSECLEAN); RF_set_flags(new_class, entry, RF_flags(old, entry)); } RF_destroy(new_class, 0); RF_destroy(old, 100); remove_tempfile(temp_fn); } mem_free(RF_filename);}
开发者ID:psi29a,项目名称:thirdeye,代码行数:57,
示例16: sprintfBYTE *str(ULONG value) { BYTE temp[64]; //ultoa(value,temp,10); sprintf(temp, "%d", value); //snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int); return (str_alloc(temp));}
开发者ID:psi29a,项目名称:thirdeye,代码行数:9,
示例17: mainint main(void){ char * str[COL_COUNT]; str_alloc(str); out_put(str); str_free(str); return 0;}
开发者ID:xiongyejun,项目名称:99-other,代码行数:10,
示例18: addrlist_dupunsigned addrlist_dup(SOCKADDR_LIST *dst, const SOCKADDR_LIST *src) { memcpy(dst, src, sizeof(SOCKADDR_LIST)); if(src->num) { /* already resolved */ dst->addr=str_alloc(src->num*sizeof(SOCKADDR_UNION)); memcpy(dst->addr, src->addr, src->num*sizeof(SOCKADDR_UNION)); } else { /* delayed resolver */ addrlist_resolve(dst); } return dst->num;}
开发者ID:NickolasLapp,项目名称:stunnel,代码行数:10,
示例19: libwrap_initvoid libwrap_init(int num) {#ifdef USE_PTHREAD int i, j, rfd, result; char servname[SERVNAME_LEN]; num_processes=num; if(!num_processes) /* no extra processes to spawn */ return; ipc_socket=str_alloc(2*num_processes*sizeof(int)); busy=str_alloc(num_processes*sizeof(int)); if(!ipc_socket || !busy) { s_log(LOG_ERR, "Memory allocation failed"); die(1); } for(i=0; i<num_processes; ++i) { /* spawn a child */ if(s_socketpair(AF_UNIX, SOCK_STREAM, 0, ipc_socket+2*i, 0, "libwrap_init")) die(1); switch(fork()) { case -1: /* error */ ioerror("fork"); die(1); case 0: /* child */ drop_privileges(); /* libwrap processes are not chrooted */ close(0); /* stdin */ close(1); /* stdout */ if(!global_options.option.foreground) /* for logging in read_fd */ close(2); /* stderr */ for(j=0; j<=i; ++j) /* close parent-side sockets created so far */ close(ipc_socket[2*j]); while(1) { /* main libwrap child loop */ if(read_fd(ipc_socket[2*i+1], servname, SERVNAME_LEN, &rfd)<=0) _exit(0); result=check(servname, rfd); write(ipc_socket[2*i+1], (u8 *)&result, sizeof result); if(rfd>=0) close(rfd); } default: /* parent */ close(ipc_socket[2*i+1]); /* child-side socket */ } }#endif /* USE_PTHREAD */}
开发者ID:l7s,项目名称:stunnel,代码行数:43,
示例20: tstr2strLPSTR tstr2str(const LPTSTR in) { LPSTR out; int len;#ifdef UNICODE len=WideCharToMultiByte(CP_ACP, 0, in, -1, NULL, 0, NULL, NULL); if(!len) return NULL; out=str_alloc(len+1); len=WideCharToMultiByte(CP_ACP, 0, in, -1, out, len, NULL, NULL); if(!len) return NULL;#else len=strlen(in); out=str_alloc(len+1); strcpy(out, in);#endif return out;}
开发者ID:amirmc,项目名称:signpost,代码行数:19,
示例21: gtf_file_allocgtf_file_t* gtf_file_alloc(FILE* file){ gtf_file_t* f = malloc_or_die(sizeof(gtf_file_t)); f->file = file; f->k = 0; f->state = STATE_FIELD; f->buf = malloc_or_die(gtf_file_buf_size); f->buf[0] = '/0'; f->quote = '/0'; f->c = f->buf; f->field1 = str_alloc(); f->field2 = str_alloc(); f->line = 1; f->col = 1; return f;}
开发者ID:dcjones,项目名称:seqsim,代码行数:19,
示例22: str2tstrLPTSTR str2tstr(const LPSTR in) { LPTSTR out; int len;#ifdef UNICODE len=MultiByteToWideChar(CP_ACP, 0, in, -1, NULL, 0); if(!len) return NULL; out=str_alloc((len+1)*sizeof(WCHAR)); len=MultiByteToWideChar(CP_ACP, 0, in, -1, out, len); if(!len) return NULL;#else len=strlen(in); out=str_alloc(len+1); strcpy(out, in);#endif return out;}
开发者ID:amirmc,项目名称:signpost,代码行数:19,
示例23: str_dupchar *s_ntop(SOCKADDR_UNION *addr, socklen_t addrlen) { int err; char *host, *port, *retval; if(addrlen==sizeof(u_short)) /* see UNIX(7) manual for details */ return str_dup("unnamed socket"); host=str_alloc(256); port=str_alloc(256); /* needs to be long enough for AF_UNIX path */ err=getnameinfo(&addr->sa, addrlen, host, 256, port, 256, NI_NUMERICHOST|NI_NUMERICSERV); if(err) { s_log(LOG_ERR, "getnameinfo: %s", s_gai_strerror(err)); retval=str_dup("unresolvable address"); } else retval=str_printf("%s:%s", host, port); str_free(host); str_free(port); return retval;}
开发者ID:madnessw,项目名称:thesnow,代码行数:19,
示例24: /* allocate local data structure for the new thread */CLI *alloc_client_session(SERVICE_OPTIONS *opt, int rfd, int wfd) { CLI *c; c=str_alloc(sizeof(CLI)); str_detach(c); c->opt=opt; c->local_rfd.fd=rfd; c->local_wfd.fd=wfd; return c;}
开发者ID:nmacs,项目名称:lm3s-uclinux,代码行数:11,
示例25: swap_buffers/* sipmly swappes the content of the two buffers */void swap_buffers(char *fst, char *snd) { char *tmp; if (fst == snd) return; tmp = str_alloc(strlen(fst)+1); strcpy(tmp, fst); strcpy(fst, snd); strcpy(snd, tmp); free(tmp);}
开发者ID:suretec,项目名称:sipsak,代码行数:12,
示例26: replace_strings/* checks if the strings contains special double marks and then * replace all occurences of this strings in the message */void replace_strings(char *mes, char *strings) { char *pos, *atr, *val, *repl, *end; char sep; pos=atr=val=repl = NULL;#ifdef DEBUG printf("replace_strings entered/nstrings: '%s'/n", strings);#endif if ((isalnum(*strings) != 0) && (isalnum(*(strings + strlen(strings) - 1)) != 0)) { replace_string(req, "$replace$", replace_str); } else { sep = *strings;#ifdef DEBUG printf("sep: '%c'/n", sep);#endif end = strings + strlen(strings); pos = strings + 1; while (pos < end) { atr = pos; pos = strchr(atr, sep); if (pos != NULL) { *pos = '/0'; val = pos + 1; pos = strchr(val, sep); if (pos != NULL) { *pos = '/0'; pos++; } }#ifdef DEBUG printf("atr: '%s'/nval: '%s'/n", atr, val);#endif if ((atr != NULL) && (val != NULL)) { repl = str_alloc(strlen(val) + 3); if (repl == NULL) { printf("failed to allocate memory/n"); exit_code(2); } sprintf(repl, "$%s$", atr); replace_string(mes, repl, val); free(repl); }#ifdef DEBUG printf("pos: '%s'/n", pos);#endif } }#ifdef DEBUG printf("mes:/n'%s'/n", mes);#endif}
开发者ID:BackupTheBerlios,项目名称:sipsak-svn,代码行数:55,
示例27: mem_allocCSS_class *CSS_construct(BYTE *string) { CSS_class *CSS; CSS = (CSS_class*) mem_alloc(sizeof(CSS_class)); if (string == NULL) CSS->string = CSS->cur = str_alloc((BYTE*) ""); else CSS->string = CSS->cur = string; return (CSS);}
开发者ID:psi29a,项目名称:thirdeye,代码行数:12,
示例28: str_allocchar *sub_arg_in_braces(struct session *ses, char *string, char *result, int flag, int sub){ char *buffer = str_alloc(UMAX(strlen(string), BUFFER_SIZE)); string = get_arg_in_braces(ses, string, buffer, flag); substitute(ses, buffer, result, sub); str_free(buffer); return string;}
开发者ID:SlySven,项目名称:tintin,代码行数:12,
注:本文中的str_alloc函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ str_alloc_text函数代码示例 C++ strVal函数代码示例 |