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


C++ c3_malloc函数代码示例

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


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

示例1: u3_unix_io_init

/* u3_unix_io_init(): initialize unix sync.
*/
void
u3_unix_io_init(void)
{
    u3_unix* unx_u = &u3_Host.unx_u;

    unx_u->mon_u = NULL;

    {
        u3_usig* sig_u;

        sig_u = c3_malloc(sizeof(u3_usig));
        uv_signal_init(u3L, &sig_u->sil_u);

        sig_u->num_i = SIGTERM;
        sig_u->nex_u = unx_u->sig_u;
        unx_u->sig_u = sig_u;
    }
    {
        u3_usig* sig_u;

        sig_u = c3_malloc(sizeof(u3_usig));
        uv_signal_init(u3L, &sig_u->sil_u);

        sig_u->num_i = SIGINT;
        sig_u->nex_u = unx_u->sig_u;
        unx_u->sig_u = sig_u;
    }
    {
        u3_usig* sig_u;

        sig_u = c3_malloc(sizeof(u3_usig));
        uv_signal_init(u3L, &sig_u->sil_u);

        sig_u->num_i = SIGWINCH;
        sig_u->nex_u = unx_u->sig_u;
        unx_u->sig_u = sig_u;
    }

    uv_check_init(u3_Host.lup_u, &u3_Host.unx_u.syn_u);

    uv_timer_init(u3L, &unx_u->tim_u);
    unx_u->alm = c3n;
    unx_u->dyr = c3n;

    if ( c3n == u3_Host.ops_u.nuu ) {
        u3v_plan(u3nt(u3_blip, c3__boat, u3_nul),
                 u3nc(c3__boat, u3_nul));
    }
}
开发者ID:juped,项目名称:your-urbit,代码行数:51,代码来源:unix.c

示例2: _http_conn_new

/* _http_conn_new(): create http connection.
*/
static void
_http_conn_new(u2_http *htp_u)
{
  u2_hcon *hon_u = c3_malloc(sizeof(*hon_u));

  uv_tcp_init(u2L, &hon_u->wax_u);

  if ( 0 != uv_accept((uv_stream_t*)&htp_u->wax_u,
                      (uv_stream_t*)&hon_u->wax_u) )
  {
    uL(fprintf(uH, "http: accept: %s\n",
                    uv_strerror(uv_last_error(u2L))));

    uv_close((uv_handle_t*)&hon_u->wax_u, 0);
    free(hon_u);
  }
  else {
    uv_read_start((uv_stream_t*)&hon_u->wax_u,
                  _http_alloc,
                  _http_conn_read_cb);

    hon_u->coq_l = htp_u->coq_l++;
    hon_u->seq_l = 1;

    hon_u->ruc_u = 0;
    hon_u->req_u = 0;
    hon_u->qer_u = 0;

    hon_u->htp_u = htp_u;
    hon_u->nex_u = htp_u->hon_u;
    htp_u->hon_u = hon_u;
  }
}
开发者ID:gphummer,项目名称:urbit,代码行数:35,代码来源:http.c

示例3: _unix_hot_gain

/* _unix_hot_gain(): gain ship.
*/
static void
_unix_hot_gain(u2_noun who, u2_bean mek)
{
  u2_noun hox = u2_dc("scot", 'p', u2k(who));
  c3_c*   hox_c = u2_cr_string(hox);
  c3_c*   pax_c = _unix_down(u2_Host.cpu_c, hox_c + 1);
  DIR*    rid_u = opendir(pax_c);

  if ( !rid_u ) {
    if ( u2_yes == mek ) {
      _unix_mkdir(pax_c);
    } else {
      u2z(who);
      u2z(hox);
      return;
    }
  } else closedir(rid_u);

  // uL(fprintf(uH, "GAIN %s\n", pax_c));
  free(hox_c);
  u2z(hox);
  u2_unix_acquire(pax_c);

  {
    u2_uhot* hot_u = c3_malloc(sizeof(u2_uhot));

    _unix_dir_watch(&hot_u->dir_u, 0, pax_c);

    u2_cr_mp(hot_u->who_mp, who);
    u2z(who);

    hot_u->nex_u = u2_Host.unx_u.hot_u;
    u2_Host.unx_u.hot_u = hot_u;
  }
}
开发者ID:esaul,项目名称:urbit,代码行数:37,代码来源:unix.c

示例4: _unix_desk_sync_tako

/* _unix_desk_sync_tako(): sync out change.
*/
static void
_unix_desk_sync_tako(u2_udir* dir_u, u2_noun pax, u2_noun mis)
{
  if ( (u2_no == u2du(pax)) || u2_no == u2du(u2t(pax)) ) {
    c3_assert(0);

    u2z(pax); u2z(mis);
  }
  else {
    u2_noun i_pax = u2h(pax);
    u2_noun t_pax = u2t(pax);
    u2_noun it_pax = u2h(t_pax);
    u2_noun tt_pax = u2t(t_pax);

    if ( u2_nul == tt_pax ) {
      _unix_desk_sync_tofu(dir_u, u2k(i_pax), u2k(it_pax), mis);
    }
    else {
      u2_udir** dis_u = _unix_pdir(dir_u, u2k(i_pax));

      if ( !*dis_u ) {
        *dis_u = c3_malloc(sizeof(u2_udir));

        _unix_dir_forge(*dis_u, dir_u, u2k(i_pax));
      }
      _unix_desk_sync_tako(*dis_u, u2k(t_pax), mis);
    }
  }
  u2z(pax);
}
开发者ID:gphummer,项目名称:urbit,代码行数:32,代码来源:unix.c

示例5: u2_cf_flat_save

/* u2_cf_flat_save(): save `som` as `mod` at `pas`.
*/
u2_bean
u2_cf_flat_save(u2_noun mod,
                u2_noun pas,
                u2_noun som)
{
  c3_assert(c3__atom == mod);
  {
    c3_c*       pas_c = u2_cr_string(pas);
    c3_i    fid_i;
    c3_w    fln_w;
    c3_y*   fil_y;

    fid_i = open(pas_c, O_WRONLY | O_CREAT, 0666);
    free(pas_c);
    u2_cz(pas);

    if ( fid_i < 0 ) {
      perror(pas_c);
      u2_cz(som);
      return u2_no;
    }

    fln_w = u2_met(3, som);
    fil_y = c3_malloc(fln_w);
    u2_cr_bytes(0, fln_w, fil_y, som);
    u2_cz(som);

    if ( fln_w != write(fid_i, fil_y, fln_w) ) {
      return u2_no;
    }
    close(fid_i);

    return u2_yes;
  }
}
开发者ID:TJamesCorcoran,项目名称:DEPRECATED_urbit_with_kafka,代码行数:37,代码来源:coal.c

示例6: u3_walk_load

/* u3_walk_load(): load file or bail.
*/
static u3_noun
u3_walk_load(c3_c* pas_c)
{
  struct stat buf_b;
  c3_i        fid_i = open(pas_c, O_RDONLY, 0644);
  c3_w        fln_w, red_w;
  c3_y*       pad_y;

  if ( (fid_i < 0) || (fstat(fid_i, &buf_b) < 0) ) {
    fprintf(stderr, "%s: %s\r\n", pas_c, strerror(errno));
    return u3_cm_bail(c3__fail);
  }
  fln_w = buf_b.st_size;
  pad_y = c3_malloc(buf_b.st_size);

  red_w = read(fid_i, pad_y, fln_w);
  close(fid_i);

  if ( fln_w != red_w ) {
    free(pad_y);
    return u3_cm_bail(c3__fail);
  }
  else {
    u3_noun pad = u3_ci_bytes(fln_w, (c3_y *)pad_y);
    free(pad_y);

    return pad;
  }
}
开发者ID:Gunga,项目名称:urbit,代码行数:31,代码来源:test.c

示例7: _http_list_to_heds

/* _http_list_to_heds(): list to C headers.
*/
static u3_hhed*
_http_list_to_heds(u3_noun lix)
{
  u3_noun  yix = lix;
  u3_hhed* hed_u = 0;

  while ( 1 ) {
    if ( u3_nul == lix ) {
      break;
    }
    else {
      u3_noun  i_lix = u3h(lix);
      u3_noun  pi_lix = u3h(i_lix);
      u3_noun  qi_lix = u3t(i_lix);
      u3_noun  t_lix = u3t(lix);
      u3_hhed* nex_u = c3_malloc(sizeof(u3_hhed));

      nex_u->nam_c = u3r_string(pi_lix);
      nex_u->val_c = u3r_string(qi_lix);
      nex_u->nex_u = hed_u;

      hed_u = nex_u;
      lix = t_lix;
    }
  }
  u3z(yix);
  return hed_u;
}
开发者ID:dphiffer,项目名称:urbit,代码行数:30,代码来源:http.c

示例8: _http_bods_to_octs

/* _http_bods_to_octs: translate body into octet-stream noun.
*/
static u3_noun
_http_bods_to_octs(u3_hbod* bod_u)
{
  c3_w    len_w;
  c3_y*   buf_y;
  u3_noun cos;

  {
    u3_hbod* bid_u;

    len_w = 0;
    for ( bid_u = bod_u; bid_u; bid_u = bid_u->nex_u ) {
      len_w += bid_u->len_w;
    }
  }
  buf_y = c3_malloc(len_w);

  {
    c3_y* ptr_y = buf_y;

    while ( bod_u ) {
      memcpy(ptr_y, bod_u->hun_y, bod_u->len_w);
      ptr_y += bod_u->len_w;
      bod_u = bod_u->nex_u;
    }
  }
  cos = u3i_bytes(len_w, buf_y);
  free(buf_y);
  return u3nc(len_w, cos);
}
开发者ID:dphiffer,项目名称:urbit,代码行数:32,代码来源:http.c

示例9: _unix_file_form

/* _unix_file_form(): form a filename path downward.
*/
static c3_c*
_unix_file_form(u2_udir* dir_u,
                u2_noun  pre,
                u2_bean  ket,
                u2_noun  ext)
{
  c3_c* pre_c = u2_cr_string(pre);
  c3_c* ext_c = u2_cr_string(ext);
  c3_w  pax_w = strlen(dir_u->pax_c);
  c3_w  pre_w = strlen(pre_c);
  c3_w  ext_w = strlen(ext_c);
  c3_w  ket_w = (u2_yes == ket) ? 1 : 0;
  c3_c* pax_c = c3_malloc(pax_w + 1 + pre_w + 1 + ket_w + ext_w + 1);

  strncpy(pax_c, dir_u->pax_c, pax_w);
  pax_c[pax_w] = '/';
  strncpy(pax_c + pax_w + 1, pre_c, pre_w);
  pax_c[pax_w + 1 + pre_w] = '.';
  if ( u2_yes == ket ) {
    pax_c[pax_w + 1 + pre_w + 1] = '^';
  }
  strncpy(pax_c + pax_w + 1 + pre_w + 1 + ket_w, ext_c, ext_w);
  pax_c[pax_w + 1 + pre_w + 1 + ket_w + ext_w] = '\0';

  free(pre_c); free(ext_c);
  u2z(pre); u2z(ext);

  return pax_c;
}
开发者ID:esaul,项目名称:urbit,代码行数:31,代码来源:unix.c

示例10: _http_conn_new

/* _http_conn_new(): create http connection.
*/
static void
_http_conn_new(u3_http *htp_u)
{
  u3_hcon *hon_u = c3_malloc(sizeof(*hon_u));

  uv_tcp_init(u3L, &hon_u->wax_u);

  c3_w ret_w;
  ret_w = uv_accept((uv_stream_t*)&htp_u->wax_u,
                    (uv_stream_t*)&hon_u->wax_u);
  if (ret_w == UV_EOF)
  {
    uL(fprintf(uH, "http: accept: ERROR\n"));

    uv_close((uv_handle_t*)&hon_u->wax_u, _http_conn_free_early);
  }
  else {
    uv_read_start((uv_stream_t*)&hon_u->wax_u,
                  _http_alloc,
                  _http_conn_read_cb);

    hon_u->coq_l = htp_u->coq_l++;
    hon_u->seq_l = 1;

    hon_u->ruc_u = 0;
    hon_u->req_u = 0;
    hon_u->qer_u = 0;

    hon_u->htp_u = htp_u;
    hon_u->nex_u = htp_u->hon_u;
    htp_u->hon_u = hon_u;
  }
}
开发者ID:dphiffer,项目名称:urbit,代码行数:35,代码来源:http.c

示例11: _http_header_field

/* _http_header_field(): jhttp callback
*/
static c3_i
_http_header_field(http_parser* par_u, const c3_c* buf_c, size_t siz_i)
{
  u3_hreq *req_u = par_u->data;

  switch ( req_u->rat_e ) {
    case u3_hreq_non:
    case u3_hreq_val: {
      u3_hhed* hed_u = c3_malloc(sizeof(*hed_u));

      hed_u->nam_c = _http_more(0, buf_c, siz_i);
      hed_u->val_c = 0;
      hed_u->nex_u = req_u->hed_u;
      req_u->hed_u = hed_u;

      break;
    }
    case u3_hreq_nam: {
      req_u->hed_u->nam_c = _http_more(req_u->hed_u->nam_c, buf_c, siz_i);
      break;
    }
  }
  req_u->rat_e = u3_hreq_nam;
  return 0;
}
开发者ID:dphiffer,项目名称:urbit,代码行数:27,代码来源:http.c

示例12: j2_mbc

  u2_weak                                                         //  produce
  j2_mbc(Pt5, shal)(u2_wire wir_r,
                    u2_atom a,                                    //  retain
                    u2_atom b)                                    //  retain
  {
    c3_assert(u2_fly_is_cat(a));
    c3_y* fat_y = c3_malloc(a + 1);

    u2_bytes(0, a, fat_y, b);
    {
      c3_y dig_y[64];
#if defined(U2_OS_osx)
      CC_SHA512_CTX ctx_h;

      CC_SHA512_Init(&ctx_h);
      CC_SHA512_Update(&ctx_h, fat_y, a);
      CC_SHA512_Final(dig_y, &ctx_h);
#else
      SHA512_CTX ctx_h;

      SHA512_Init(&ctx_h);
      SHA512_Update(&ctx_h, fat_y, a);
      SHA512_Final(dig_y, &ctx_h);
#endif
      free(fat_y);
      return u2_rl_bytes(wir_r, 64, dig_y);
    }
  }
开发者ID:TJamesCorcoran,项目名称:DEPRECATED_urbit_with_kafka,代码行数:28,代码来源:shax.c

示例13: u2_cf_path

u2_noun
u2_cf_path(c3_c* top_c,
           c3_c* ext_c,
           u2_noun tah)
{
  c3_w    top_w = strlen(top_c);
  c3_w    len_w = _cf_path_1(0, (top_w + 1), tah);
  c3_w    buf_w = len_w + (ext_c ? (1 + strlen(ext_c)) : 0);
  c3_c*   buf_c = c3_malloc(buf_w + 1);
  c3_w    pos_w;
  u2_noun pas;

  strncpy(buf_c, top_c, buf_w);
  buf_c[buf_w] = '\0';
  pos_w = top_w;
  buf_c[pos_w++] = '/';

  pos_w = _cf_path_1(buf_c, pos_w, tah);

  if ( ext_c ) {
    buf_c[pos_w++] = '.';
    strncpy(buf_c + pos_w, ext_c, buf_w - pos_w);
  } else {
    buf_c[pos_w] = 0;
  }

  pas = u2_ci_string(buf_c);
  free(buf_c);

  u2_cz(tah);
  return pas;
}
开发者ID:TJamesCorcoran,项目名称:DEPRECATED_urbit_with_kafka,代码行数:32,代码来源:coal.c

示例14: _unix_save

/* unix_save(): save a file.
*/
static void
_unix_save(c3_c* pax_c, u2_atom oat)
{
  c3_i  fid_i = open(pax_c, O_WRONLY | O_CREAT | O_TRUNC, 0666);
  c3_w  fln_w, rit_w;
  c3_y* oat_y;

  if ( fid_i < 0 ) {
    uL(fprintf(uH, "%s: %s\n", pax_c, strerror(errno)));
    u2_cm_bail(c3__fail);
  }

  fln_w = u2_met(3, oat);
  oat_y = c3_malloc(fln_w);
  u2_cr_bytes(0, fln_w, oat_y, oat);
  u2z(oat);

  rit_w = write(fid_i, oat_y, fln_w);
  if ( rit_w != fln_w ) {
    uL(fprintf(uH, "%s: %s\n", pax_c, strerror(errno)));
    c3_assert(0);
  }

  close(fid_i);
  free(oat_y);
}
开发者ID:esaul,项目名称:urbit,代码行数:28,代码来源:unix.c

示例15: _unix_load

/* unix_load(): load a file.
*/
static u2_noun
_unix_load(c3_c* pax_c)
{
  struct stat buf_u;
  c3_i        fid_i = open(pax_c, O_RDONLY, 0644);
  c3_w        fln_w, red_w;
  c3_y*       pad_y;

  if ( (fid_i < 0) || (fstat(fid_i, &buf_u) < 0) ) {
    //  ignore if the file disappeared between getting the sync event and now
    if ( ENOENT != errno ) {
      uL(fprintf(uH, "%s: %s\n", pax_c, strerror(errno)));
    }
    return 0;
  }
  fln_w = buf_u.st_size;
  pad_y = c3_malloc(buf_u.st_size);

  red_w = read(fid_i, pad_y, fln_w);
  close(fid_i);

  if ( fln_w != red_w ) {
    free(pad_y);
    c3_assert(0);
    return 0;
  }
  else {
    u2_noun pad = u2_ci_bytes(fln_w, (c3_y *)pad_y);
    free(pad_y);

    return pad;
  }
}
开发者ID:esaul,项目名称:urbit,代码行数:35,代码来源:unix.c


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