本文整理汇总了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));
}
}
示例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;
}
}
示例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;
}
}
示例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);
}
示例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;
}
}
示例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;
}
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
}
示例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;
}
示例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);
}
}
示例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;
}
示例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);
}
示例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;
}
}