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

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

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

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

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

示例1: execute

int execute(char **output, const char *fmt, ...) {  va_list ap;  FILE *fp;  char *command;  static char outbuf[OUTBUF_SIZE];  unsigned int answer_len;  int i;  va_start(ap, fmt);  assert(vasprintf(&command, fmt, ap) > 0);  va_end(ap);  #if defined(DEBUG)  printf("COMMAND => %s/n", command);  #endif  assert(fp = popen(command, "r"));  fgets(outbuf, sizeof(outbuf)-1, fp);  if (output) {    answer_len = strnlen(outbuf, OUTBUF_SIZE - 1);    assert(answer_len <= (OUTBUF_SIZE - 1));    for (i = 0; i <= answer_len; i++)      if (outbuf[i] == '/n')        outbuf[i] = '/0';    #if defined(DEBUG)    printf("RESULT => %s/n"           "answer_len => %u/n", outbuf, answer_len);    #endif    if (answer_len > 1) {      *output = malloc(answer_len);      strcpy(*output, outbuf);    }    else      *output = 0;  }  free(command);  return WEXITSTATUS(pclose(fp));}
开发者ID:Valtis,项目名称:meta-ostro,代码行数:36,


示例2: dpl_dbuf_add_printf

intdpl_dbuf_add_printf(dpl_dbuf_t *nbuf, const char *fmt, ...){    char		*str = NULL;    unsigned char	*data = NULL;    int		 len;    int		 ret;    va_list	 ap;    va_start(ap, fmt);    len = vasprintf(&str, fmt, ap);    if (len == -1)    {        ret = 0;        goto end;    }    data = buf_recompute_length(nbuf, len);    if (NULL == data)    {        ret = 0;        goto end;    }    memcpy(data + nbuf->data_max, str, len);    nbuf->data  = data;    nbuf->data_max += len;    ret = 1;end:    free (str);    va_end(ap);    return ret;}
开发者ID:neverstoplwy,项目名称:Droplet,代码行数:36,


示例3: wfmt

const wchar_t * wfmt(const char * format, ...){	static wchar_t strWChar[512];	strWChar[0] = 0;	if(!format)		return (const wchar_t *) strWChar;	if(strcmp(format, "") == 0)		return (const wchar_t *) strWChar;	char * tmp = NULL;	va_list va;	va_start(va, format);	if((vasprintf(&tmp, format, va) >= 0) && tmp)	{		int	bt;		int strlength = strlen(tmp);		bt = mbstowcs(strWChar, tmp, (strlength < 512) ? strlength : 512 );		free(tmp);		tmp = 0;		if(bt > 0)		{			strWChar[bt] = 0;			return (const wchar_t *) strWChar;		}	}	va_end(va);	if(tmp)		free(tmp);	return (const wchar_t *) strWChar;}
开发者ID:Jeremy-D-Miller,项目名称:usbloader-gui,代码行数:36,


示例4: jl_printf

static jl_value_t *jl_vexceptionf(jl_datatype_t *exception_type,                                  const char *fmt, va_list args){    if (exception_type == NULL) {        jl_printf(JL_STDERR, "ERROR: ");        jl_vprintf(JL_STDERR, fmt, args);        jl_printf(JL_STDERR, "/n");        jl_exit(1);    }    char *str = NULL;    int ok = vasprintf(&str, fmt, args);    jl_value_t *msg;    if (ok < 0) {  // vasprintf failed        msg = jl_cstr_to_string("internal error: could not display error message");    }    else {        msg = jl_pchar_to_string(str, strlen(str));        free(str);    }    JL_GC_PUSH1(&msg);    jl_value_t *e = jl_new_struct(exception_type, msg);    JL_GC_POP();    return e;}
开发者ID:MatthiasJReisinger,项目名称:julia,代码行数:24,


示例5: sol_buffer_insert_vprintf

SOL_API intsol_buffer_insert_vprintf(struct sol_buffer *buf, size_t pos, const char *fmt, va_list args){    char *s;    ssize_t len;    struct sol_str_slice slice;    int r;    SOL_NULL_CHECK(buf, -EINVAL);    SOL_NULL_CHECK(fmt, -EINVAL);    SOL_INT_CHECK(pos, > buf->used, -EINVAL);    if (pos == buf->used)        return sol_buffer_append_vprintf(buf, fmt, args);    len = vasprintf(&s, fmt, args);    if (len < 0)        return -errno;    slice = SOL_STR_SLICE_STR(s, len);    r = sol_buffer_insert_slice(buf, pos, slice);    free(s);    return r;}
开发者ID:rodrigoferrazazevedo,项目名称:soletta,代码行数:24,


示例6: check_string_literal

void check_string_literal( FILE* fp, const char* s, char *buf, ... ) {  char * b;  va_list ap;  va_start(ap,buf);  printf(s); // expected-warning {{format string is not a string literal}}  vprintf(s,ap); // expected-warning {{format string is not a string literal}}  fprintf(fp,s); // expected-warning {{format string is not a string literal}}  vfprintf(fp,s,ap); // expected-warning {{format string is not a string literal}}  asprintf(&b,s); // expected-warning {{format string is not a string lit}}  vasprintf(&b,s,ap); // expected-warning {{format string is not a string literal}}  sprintf(buf,s); // expected-warning {{format string is not a string literal}}  snprintf(buf,2,s); // expected-warning {{format string is not a string lit}}  __builtin___sprintf_chk(buf,0,-1,s); // expected-warning {{format string is not a string literal}}  __builtin___snprintf_chk(buf,2,0,-1,s); // expected-warning {{format string is not a string lit}}  vsprintf(buf,s,ap); // expected-warning {{format string is not a string lit}}  vsnprintf(buf,2,s,ap); // expected-warning {{format string is not a string lit}}  vsnprintf(buf,2,global_fmt,ap); // expected-warning {{format string is not a string literal}}  __builtin___vsnprintf_chk(buf,2,0,-1,s,ap); // expected-warning {{format string is not a string lit}}  __builtin___vsnprintf_chk(buf,2,0,-1,global_fmt,ap); // expected-warning {{format string is not a string literal}}  vscanf(s, ap); // expected-warning {{format string is not a string literal}}  // rdar://6079877  printf("abc"         "%*d", 1, 1); // no-warning  printf("abc/def"         "%*d", 1, 1); // no-warning           // <rdar://problem/6079850>, allow 'unsigned' (instead of 'int') to be used for both  // the field width and precision.  This deviates from C99, but is reasonably safe  // and is also accepted by GCC.  printf("%*d", (unsigned) 1, 1); // no-warning  }
开发者ID:RichardsonAlex,项目名称:clang-1,代码行数:36,


示例7: GeoIP_printf

void GeoIP_printf(void (*f)(char *), const char *str,...) {  va_list params;  char * f_str;  int silence;  if (f == NULL)    return;  va_start(params, str);#if defined(HAVE_VASPRINTF)  silence = vasprintf(&f_str, str, params);#elif defined (HAVE_VSNPRINTF)  f_str = malloc(4096);  if ( f_str )    silence = vsnprintf(f_str, 4096, str, params);#else  f_str = malloc(4096);  if ( f_str )    silence = vsprintf(f_str, str, params);#endif  va_end(params);  if ( f_str == NULL )    return;  (*f)(f_str);  free(f_str);}
开发者ID:Asinox,项目名称:sinatra-geoip,代码行数:24,


示例8: write_ribfile

bool write_ribfile(const NonDestructiveTriMesh &mesh, const std::vector<float> &x, const char *filename_format, ...){#ifdef _MSC_VER    va_list ap;    va_start(ap, filename_format);    int len=_vscprintf(filename_format, ap) // _vscprintf doesn't count        +1; // terminating '/0'    char *filename=new char[len];    vsprintf(filename, filename_format, ap);    std::ofstream output(filename, std::ofstream::binary);    delete[] filename;    va_end(ap);#else    va_list ap;    va_start(ap, filename_format);    char *filename;    vasprintf(&filename, filename_format, ap);    std::ofstream output(filename, std::ofstream::binary);    std::free(filename);    va_end(ap);#endif    if(!output.good()) return false;    return write_ribfile(mesh, x, output);}
开发者ID:YangchenVR,项目名称:eltopo,代码行数:24,


示例9: text_draw

static void text_draw(float x, float y, const char* fmt, ...) {  char* string, *ch;  va_list args;  va_start(args, fmt);  if (-1 == vasprintf(&string, fmt, args)) return;  for (ch = string; *ch; ++ch) {    struct FONT_Glyph glyph;    uint16_t u, v;    GLYPH_Get(*ch, &glyph, &u, &v);    draw_quad_st(GLYPH_Texture(), x - glyph.x, y - glyph.y, glyph.width,                 glyph.height, (float) u / GLYPH_ATLAS_SIZE,                 (float) v / GLYPH_ATLAS_SIZE,                 (float)(u + glyph.width) / GLYPH_ATLAS_SIZE,                 (float)(v + glyph.height) / GLYPH_ATLAS_SIZE);    x += glyph.xOffset;  }  free(string);}
开发者ID:mortehu,项目名称:cantera-lock,代码行数:24,


示例10: sock_send_reply

int sock_send_reply(int socket, int reply_code, char *reply, ...){	msg mess;	char *ans;	memset(&mess, 0, sizeof(msg));	va_list ap;	va_start(ap, reply);	if (vasprintf(&ans, reply, ap) < 0) {		log(LOG_WARNING, "vasprintf error : %m");		va_end(ap);		return (1);	}	va_end(ap);	mess.op = OP_ANSWER;	mess.version = SAUTHPF_PROTO_VERSION;	mess.data.answer.answer_code = reply_code;	strlcpy(mess.data.answer.answer_msg, ans,	    sizeof(mess.data.answer.answer_msg));	free(ans);	if (sock_send_msg(socket, &mess, NULL))		return (1);	return (0);}
开发者ID:fabienr,项目名称:sauthpf,代码行数:24,


示例11: xvasprintf

char *xvasprintf (const char *format, va_list args){  char *result;  /* Recognize the special case format = "%s...%s".  It is a frequently used     idiom for string concatenation and needs to be fast.  We don't want to     have a separate function xstrcat() for this purpose.  */  {    size_t argcount = 0;    const char *f;    for (f = format;;)      {	if (*f == '/0')	  /* Recognized the special case of string concatenation.  */	  return xstrcat (argcount, args);	if (*f != '%')	  break;	f++;	if (*f != 's')	  break;	f++;	argcount++;      }  }  if (vasprintf (&result, format, args) < 0)    {      if (errno == ENOMEM)	xalloc_die ();      return NULL;    }  return result;}
开发者ID:aosm,项目名称:gm4,代码行数:36,


示例12: guestfs___debug

/* Debug messages. */voidguestfs___debug (guestfs_h *g, const char *fs, ...){  va_list args;  char *msg;  int len;  /* The cpp macro "debug" has already checked that g->verbose is true   * before calling this function, but we check it again just in case   * anyone calls this function directly.   */  if (!g->verbose)    return;  va_start (args, fs);  len = vasprintf (&msg, fs, args);  va_end (args);  if (len < 0) return;  guestfs___call_callbacks_message (g, GUESTFS_EVENT_LIBRARY, msg, len);  free (msg);}
开发者ID:msmhrt,项目名称:libguestfs,代码行数:25,


示例13: perf_gtk__error

static int perf_gtk__error(const char *format, va_list args){	char *msg;	GtkWidget *dialog;	if (!perf_gtk__is_active_context(pgctx) ||	    vasprintf(&msg, format, args) < 0) {		fprintf(stderr, "Error:/n");		vfprintf(stderr, format, args);		fprintf(stderr, "/n");		return -1;	}	dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(pgctx->main_window),					GTK_DIALOG_DESTROY_WITH_PARENT,					GTK_MESSAGE_ERROR,					GTK_BUTTONS_CLOSE,					"<b>Error</b>/n/n%s", msg);	gtk_dialog_run(GTK_DIALOG(dialog));	gtk_widget_destroy(dialog);	free(msg);	return 0;}
开发者ID:3null,项目名称:fastsocket,代码行数:24,


示例14: exechelp_log

ssize_t exechelp_log(const char *id, const char *fmt, va_list args) {  pthread_mutex_lock(&log_mutex);  ssize_t  ret = 0;  char    *buf;  char    *buf2;  int      fd = exechelp_log_get_handle(id, 0);  if (fd == -1) {    pthread_mutex_unlock(&log_mutex);    return -1;  }  if (vasprintf(&buf, fmt, args) == -1) {    pthread_mutex_unlock(&log_mutex);    return -1;  }  if (id) {    if (asprintf(&buf2, "[%s] %s", id, buf) == -1) {      free(buf);      pthread_mutex_unlock(&log_mutex);      return -1;    }    ret += write(fd, buf2, strlen(buf2));    free(buf2);    free(buf);  }  else {    ret += write(fd, buf, strlen(buf));    free(buf);  }  pthread_mutex_unlock(&log_mutex);  return ret;}
开发者ID:Sidnioulz,项目名称:firejail,代码行数:36,


示例15: rset_setfield

void	rset_setfield(rset_t* rset, unsigned int field, const char* fmt, ...){  char* str = NULL;  va_list ap;  if (NULL == rset || NULL == fmt || NULL == rset->fields)  {    errno = EFAULT;    return;  }  if (field >= rset->num_fields)  {    errno = EINVAL;    return;  }  va_start(ap, fmt);  vasprintf(&str, fmt, ap);  va_end(ap);  if (NULL == str)    return;  free(rset->fields[field]);  rset->fields[field] = str;  errno = 0;}
开发者ID:piotrm0,项目名称:first,代码行数:24,


示例16: reply_with_perror_errno

voidreply_with_perror_errno (int err, const char *fs, ...){  CLEANUP_FREE char *buf1 = NULL;  CLEANUP_FREE char *buf2 = NULL;  va_list args;  int r;  va_start (args, fs);  r = vasprintf (&buf1, fs, args);  va_end (args);  if (r == -1) {  error:    perror ("vasprintf");    exit (EXIT_FAILURE);  }  r = asprintf (&buf2, "%s: %s", buf1, strerror (err));  if (r == -1)    goto error;  send_error (err, buf2);}
开发者ID:rwmjones,项目名称:libguestfs,代码行数:24,


示例17: va_start

struct progressCBdata *winProgressBar(int width, int height, char *title, char *text, ...) {    struct progressCBdata *data;    char *buf = NULL;    va_list args;    int llen;    newtComponent t, f, scale, label;    va_start(args, text);    if (vasprintf(&buf, text, args) != -1) {        va_end(args);        newtCenteredWindow(width, height, title);        t = newtTextbox(1, 1, width - 2, height - 2, NEWT_TEXTBOX_WRAP);        newtTextboxSetText(t, buf);        llen = strlen(buf);        free(buf);        label = newtLabel(llen + 1, 1, "-");        f = newtForm(NULL, NULL, 0);        newtFormAddComponent(f, t);        scale = newtScale(3, 3, width - 6, 100);        newtFormAddComponent(f, scale);        newtDrawForm(f);        newtRefresh();        if ((data = malloc(sizeof(struct progressCBdata))) == NULL) {            logMessage(ERROR, "%s: %d: %m", __func__, __LINE__);            abort();        }        data->scale = scale;        data->label = label;        return data;    }    return NULL;}
开发者ID:redoop,项目名称:installer-redoop,代码行数:36,


示例18: dbi_conn_queryf

dbi_result dbi_conn_queryf(dbi_conn Conn, const char *formatstr, ...) {	dbi_conn_t *conn = Conn;	char *statement;	dbi_result_t *result;	va_list ap;	if (!conn || !(conn->connection)) return NULL;		_reset_conn_error(conn);	va_start(ap, formatstr);	vasprintf(&statement, formatstr, ap);	va_end(ap);		_logquery(conn, "[queryf] %s/n", statement);	result = conn->driver->functions->query(conn, statement);	if (result == NULL) {		_error_handler(conn, DBI_ERROR_DBD);	}	free(statement);		return (dbi_result)result;}
开发者ID:cention-nazri,项目名称:libdbi,代码行数:24,


示例19: transmit

/* * Send output to our connected socket (jailproc most likely) * via a printf-style interface */voidtransmit(const char *fmt, ...)  {    ssize_t sent = 0;    int bytes_to_send;    va_list ap;    char *sstring;    char *my_string;      /* Combine fmt with our given arguments */    va_start(ap, fmt);    bytes_to_send = vasprintf(&my_string, fmt, ap);    va_end(ap);    sstring = my_string;    if (bytes_to_send != -1)  {        for ( ; ; )  {            sent = send(active_fd, sstring, bytes_to_send, NULL);            if (sent == -1)  {                dk_err("send(2) error");//                goto get_out;break;            }            if (sent == bytes_to_send)  {//                goto get_out;break;            }            bytes_to_send -= sent;            sstring = &my_string[sent];        }    }// get_out:    free(my_string);}
开发者ID:prachetas,项目名称:hacks-1,代码行数:40,


示例20: file_vprintf

/* * Like printf, only we append to a buffer. */protected intfile_vprintf(struct magic_set *ms, const char *fmt, va_list ap){	int len;	char *buf, *newstr;	len = vasprintf(&buf, fmt, ap);	if (len < 0)		goto out;	if (ms->o.buf != NULL) {		len = asprintf(&newstr, "%s%s", ms->o.buf, buf);		free(buf);		if (len < 0)			goto out;		free(ms->o.buf);		buf = newstr;	}	ms->o.buf = buf;	return 0;out:	file_error(ms, errno, "vasprintf failed");	return -1;}
开发者ID:ImAWolf,项目名称:ncbi-vdb,代码行数:27,


示例21: dialog_display_error_va

static intdialog_display_error_va(vlc_dialog_provider *p_provider, const char *psz_title,                        const char *psz_fmt, va_list ap){    vlc_mutex_lock(&p_provider->lock);    if (p_provider->cbs.pf_display_error == NULL)    {        vlc_mutex_unlock(&p_provider->lock);        return VLC_EGENERIC;    }    char *psz_text;    if (vasprintf(&psz_text, psz_fmt, ap) == -1)    {        vlc_mutex_unlock(&p_provider->lock);        return VLC_ENOMEM;    }    p_provider->cbs.pf_display_error(p_provider->p_cbs_data, psz_title, psz_text);    free(psz_text);    vlc_mutex_unlock(&p_provider->lock);    return VLC_SUCCESS;}
开发者ID:IAPark,项目名称:vlc,代码行数:24,


示例22: ThrowMsg

extern "C" void ThrowMsg(const char * title, const char * format, ...){	if(!title && !format)	{		return;	}	else if(title && !format)	{		throwMessageHandler.ThrowMessage(title, NULL);		return;	}	char *tmp=0;	va_list va;	va_start(va, format);	if((vasprintf(&tmp, format, va)>=0) && tmp)	{		throwMessageHandler.ThrowMessage(title, tmp);	}	va_end(va);	if(tmp)		free(tmp);}
开发者ID:Jeremy-D-Miller,项目名称:wiixplorer,代码行数:24,


示例23: __nsock_log_internal

void __nsock_log_internal(nsock_pool nsp, nsock_loglevel_t loglevel,                          const char *file, int line, const char *func,                          const char *format, ...) {  struct nsock_log_rec rec;  va_list args;  int rc;  va_start(args, format);  rec.level = loglevel;  rec.time = nsock_tod;  rec.file = file;  rec.line = line;  rec.func = func;  rc = vasprintf(&rec.msg, format, args);  if (rc >= 0) {    mspool *ms = (mspool *)nsp;    ms->logger(nsp, &rec);    free(rec.msg);  }  va_end(args);}
开发者ID:6e6f36,项目名称:nmap,代码行数:24,


示例24: bb_verror_msg

void bb_verror_msg(const char *s, va_list p, const char* strerr){	/* va_copy is used because it is not portable	 * to use va_list p twice */	va_list p2;	va_copy(p2, p);	if (!s) /* nomsg[_and_die] uses NULL fmt */		s = ""; /* some libc don't like printf(NULL) */	if (logmode & LOGMODE_STDIO) {		fflush(stdout);		fprintf(stderr, "%s: ", applet_name);		vfprintf(stderr, s, p);		if (!strerr)			fputs(msg_eol, stderr);		else			fprintf(stderr, "%s%s%s",					s[0] ? ": " : "",					strerr, msg_eol);	}	if (ENABLE_FEATURE_SYSLOG && (logmode & LOGMODE_SYSLOG)) {		if (!strerr)			vsyslog(LOG_ERR, s, p2);		else  {			char *msg;			if (vasprintf(&msg, s, p2) < 0) {				fprintf(stderr, "%s: %s/n", applet_name, bb_msg_memory_exhausted);				xfunc_die();			}			syslog(LOG_ERR, "%s: %s", msg, strerr);			free(msg);		}	}	va_end(p2);}
开发者ID:AlickHill,项目名称:Lantern,代码行数:36,


示例25: sol_flow_send_error_packet

SOL_API intsol_flow_send_error_packet(struct sol_flow_node *src, int code, const char *msg_fmt, ...){    struct sol_flow_packet *packet;    va_list args;    char *msg = NULL;    if (msg_fmt) {        int r;        va_start(args, msg_fmt);        r = vasprintf(&msg, msg_fmt, args);        if (r < 0) {            SOL_WRN("Failed to alloc error msg");            msg = NULL;        }        va_end(args);    }    packet = sol_flow_packet_new_error(code, msg);    free(msg);    SOL_NULL_CHECK(packet, -ENOMEM);    return sol_flow_send_packet(src, SOL_FLOW_NODE_PORT_ERROR, packet);}
开发者ID:NilayNigam,项目名称:soletta,代码行数:24,


示例26: lock

/** Execute string. * @param format format of string to execute, arguments can be the same as * for vasprintf. */voidLuaContext::do_string(const char *format, ...){  MutexLocker lock(__lua_mutex);  va_list arg;  va_start(arg, format);  char *s;  if (vasprintf(&s, format, arg) == -1) {    throw Exception("LuaContext::do_string: Could not form string");  }  int rv = 0;  int errfunc = __enable_tracebacks ? 1 : 0;  rv = (luaL_loadstring(__L, s) || lua_pcall(__L, 0, LUA_MULTRET, errfunc));  free(s);  va_end(arg);  if ( rv != 0 ) {    std::string errmsg = lua_tostring(__L, -1);    lua_pop(__L, 1);    throw LuaRuntimeException("do_string", errmsg.c_str());  }}
开发者ID:fuxiang90,项目名称:fawkes,代码行数:28,


示例27: pubkey_auth_info

voidpubkey_auth_info(Authctxt *authctxt, const Key *key, const char *fmt, ...){	char *fp, *extra;	va_list ap;	int i;	extra = NULL;	if (fmt != NULL) {		va_start(ap, fmt);		i = vasprintf(&extra, fmt, ap);		va_end(ap);		if (i < 0 || extra == NULL)			fatal("%s: vasprintf failed", __func__);		}	if (key_is_cert(key)) {		fp = sshkey_fingerprint(key->cert->signature_key,		    options.fingerprint_hash, SSH_FP_DEFAULT);		auth_info(authctxt, "%s ID %s (serial %llu) CA %s %s%s%s", 		    key_type(key), key->cert->key_id,		    (unsigned long long)key->cert->serial,		    key_type(key->cert->signature_key),		    fp == NULL ? "(null)" : fp,		    extra == NULL ? "" : ", ", extra == NULL ? "" : extra);		free(fp);	} else {		fp = sshkey_fingerprint(key, options.fingerprint_hash,		    SSH_FP_DEFAULT);		auth_info(authctxt, "%s %s%s%s", key_type(key),		    fp == NULL ? "(null)" : fp,		    extra == NULL ? "" : ", ", extra == NULL ? "" : extra);		free(fp);	}	free(extra);}
开发者ID:daklaus,项目名称:openssh-backdoor,代码行数:36,


示例28: ferrout

static voidferrout(char *fmt, ...){    sigset_t block, oblock;    struct ferrlist *f;    va_list ap;    char *p;    va_start(ap, fmt);    if (ferr == 0)        vfprintf(stderr, fmt, ap);    else {	sigemptyset(&block);	sigaddset(&block, SIGINT);	sigprocmask(SIG_BLOCK, &block, &oblock);	if (vasprintf(&p, fmt, ap) == -1 || (f = malloc(sizeof(*f))) == NULL) {		va_end(ap);		va_start(ap, fmt);		flsh_errs();		vfprintf(stderr, fmt, ap);		fputs("pr: memory allocation failed/n", stderr);		exit(1);	}	f->next = NULL;	f->buf = p;	if (ferrhead == NULL)	    ferrhead = f;	if (ferrtail)		ferrtail->next = f;	ferrtail = f;	sigprocmask(SIG_SETMASK, &oblock, NULL);    }    va_end(ap);}
开发者ID:SylvestreG,项目名称:bitrig,代码行数:36,


示例29: sec_vfprintf

int sec_vfprintf(FILE * f, const char *fmt, va_list ap){	char *buf = NULL;	void *enc;	int len;	if (!ftp->sec_complete)		return vfprintf(f, fmt, ap);	if (vasprintf(&buf, fmt, ap) == -1)  {    printf(_("Failed to allocate memory./n"));    return -1;  }	len =		(*ftp->mech->encode) (ftp->app_data, buf, strlen(buf),							  ftp->command_prot, &enc);	if (len < 0) {		printf(_("Failed to encode command./n"));    free(buf);		return -1;	}	if (b64_encode(enc, len, &buf) < 0) {		printf(_("Out of memory base64-encoding./n"));    free(buf);		return -1;	}	if (ftp->command_prot == prot_safe)		fprintf(f, "MIC %s", buf);	else if (ftp->command_prot == prot_private)		fprintf(f, "ENC %s", buf);	else if (ftp->command_prot == prot_confidential)		fprintf(f, "CONF %s", buf);	free(buf);	return 0;}
开发者ID:Celelibi,项目名称:yafc,代码行数:36,


示例30: _vdlogf

static void _vdlogf(FILE *io, const char *file, int line, const char *fn, const char *fmt, va_list ap){	char *msg, tstamp[128];	int n;	struct tm t;	time_t now = time(NULL);	if (gmtime_r(&now, &t) == NULL) {		pgr_abort(ABORT_UNKNOWN);	}	n = strftime(tstamp, sizeof(tstamp), "%c", &t);	if (n < 0) {		pgr_abort(ABORT_UNKNOWN);	}	n = vasprintf(&msg, fmt, ap);	if (n < 0) {		pgr_abort(ABORT_MEMFAIL);	}	fprintf(io, "[%s] DEBUG %s:%d %s() - %s/n", tstamp, file, line, fn, msg);	free(msg);}
开发者ID:jhunt,项目名称:pgrouter,代码行数:24,



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


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