• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ rb_str_new_cstr函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: string_spec_rb_str_new_cstr

VALUE string_spec_rb_str_new_cstr(VALUE self, VALUE str) {
  if(NIL_P(str)) {
    return rb_str_new_cstr(NULL);
  } else {
    return rb_str_new_cstr(RSTRING_PTR(str));
  }
}
开发者ID:jeremyz,项目名称:rubinius,代码行数:7,代码来源:string_spec.c


示例2: symbol_new

static VALUE symbol_new(bfd * abfd, asymbol *s, char is_dynamic) {
	symbol_info info;
	VALUE class, instance;
	VALUE argv[1] = { Qnil };

	class = rb_class_new(clsSymbol);
	instance = Data_Wrap_Struct(class, NULL, NULL, s);
	rb_obj_call_init(instance, 0, argv);

	bfd_symbol_info(s, &info);

	/* set instance variables */
	rb_iv_set(instance, IVAR(SYM_ATTR_NAME), rb_str_new_cstr(info.name) );
	rb_iv_set(instance, IVAR(SYM_ATTR_TYPE), INT2NUM((int) info.type) );
	rb_iv_set(instance, IVAR(SYM_ATTR_VALUE), SIZET2NUM(info.value) );
	rb_iv_set(instance, IVAR(SYM_ATTR_FLAGS), INT2NUM(s->flags) );
	rb_iv_set(instance, IVAR(SYM_ATTR_BIND), 
		  rb_str_new_cstr( (is_dynamic ? SYM_BIND_DYNAMIC : 
				  		 SYM_BIND_STATIC) ) );
	if ( s->section ) {
		rb_iv_set(instance, IVAR(SYM_ATTR_SECTION), 
			  rb_str_new_cstr(s->section->name)); 
	}

	return instance;
}
开发者ID:hexgolems,项目名称:opdis-ruby,代码行数:26,代码来源:BFD.c


示例3: arg_string_literal_serialize

static VALUE
arg_string_literal_serialize(void* data)
{
    rb_tracelog_arg_string_literal_t *arg = (rb_tracelog_arg_string_literal_t*)data;
    VALUE key = rb_str_new_cstr(arg->key);
    VALUE val = rb_str_new_cstr(arg->val);

    VALUE args = rb_hash_new();
    rb_hash_aset(args, key, val);
    return args;
}
开发者ID:nyaxt,项目名称:tracejson,代码行数:11,代码来源:tracelog.c


示例4: showExc

static void showExc(VALUE exc)
{
	VALUE bt = rb_funcall2(exc, rb_intern("backtrace"), 0, NULL);
	VALUE bt0 = rb_ary_entry(bt, 0);
	VALUE name = rb_class_path(rb_obj_class(exc));

	VALUE ds = rb_sprintf("%" PRIsVALUE ": %" PRIsVALUE " (%" PRIsVALUE ")",
	                      bt0, exc, name);
	/* omit "useless" last entry (from ruby:1:in `eval') */
	for (long i = 1, btlen = RARRAY_LEN(bt) - 1; i < btlen; ++i)
		rb_str_catf(ds, "\n\tfrom %" PRIsVALUE, rb_ary_entry(bt, i));
	Debug() << StringValueCStr(ds);

	ID id_index = rb_intern("index");
	/* an "offset" argument is not needed for the first time */
	VALUE argv[2] = { rb_str_new_cstr(":") };
	long filelen = NUM2LONG(rb_funcall2(bt0, id_index, 1, argv));
	argv[1] = LONG2NUM(filelen + 1);
	VALUE tmp = rb_funcall2(bt0, id_index, ARRAY_SIZE(argv), argv);
	long linelen = NUM2LONG(tmp) - filelen - 1;
	VALUE file = rb_str_subseq(bt0, 0, filelen);
	VALUE line = rb_str_subseq(bt0, filelen + 1, linelen);
	VALUE ms = rb_sprintf("Script '%" PRIsVALUE "' line %" PRIsVALUE
	                      ": %" PRIsVALUE " occured.\n\n%" PRIsVALUE,
	                      file, line, name, exc);
	showMsg(StringValueCStr(ms));
}
开发者ID:BlackLotus,项目名称:mkxp,代码行数:27,代码来源:binding-mri.cpp


示例5: grpc_rb_call_credentials_callback_with_gil

static void grpc_rb_call_credentials_callback_with_gil(void* param) {
  callback_params* const params = (callback_params*)param;
  VALUE auth_uri = rb_str_new_cstr(params->context.service_url);
  /* Pass the arguments to the proc in a hash, which currently only has they key
     'auth_uri' */
  VALUE callback_args = rb_ary_new();
  VALUE args = rb_hash_new();
  VALUE result;
  grpc_metadata_array md_ary;
  grpc_status_code status;
  VALUE details;
  char* error_details;
  grpc_metadata_array_init(&md_ary);
  rb_hash_aset(args, ID2SYM(rb_intern("jwt_aud_uri")), auth_uri);
  rb_ary_push(callback_args, params->get_metadata);
  rb_ary_push(callback_args, args);
  result = rb_rescue(grpc_rb_call_credentials_callback, callback_args,
                     grpc_rb_call_credentials_callback_rescue, Qnil);
  // Both callbacks return a hash, so result should be a hash
  grpc_rb_md_ary_convert(rb_hash_aref(result, rb_str_new2("metadata")),
                         &md_ary);
  status = NUM2INT(rb_hash_aref(result, rb_str_new2("status")));
  details = rb_hash_aref(result, rb_str_new2("details"));
  error_details = StringValueCStr(details);
  params->callback(params->user_data, md_ary.metadata, md_ary.count, status,
                   error_details);
  grpc_rb_metadata_array_destroy_including_entries(&md_ary);
  gpr_free(params);
}
开发者ID:CCNITSilchar,项目名称:grpc,代码行数:29,代码来源:rb_call_credentials.c


示例6: zval_to_hash

VALUE zval_to_hash(zval *zv) {
  HashTable *ht;
  HashPosition pos;
  zval **data;
  VALUE ret;

  convert_to_array(zv);
  ht = Z_ARRVAL_P(zv);

  ret = rb_hash_new();

    zend_hash_internal_pointer_reset_ex(ht, &pos);
    while (zend_hash_get_current_data_ex(ht, (void **)&data, &pos) == SUCCESS) {
        char* key_str;
        uint key_len;
        ulong num_index;
        VALUE key = Qnil;
        VALUE val = new_php_embed_value(*data);

        switch(zend_hash_get_current_key_ex(ht, &key_str, &key_len, &num_index, 0, &pos)) {
            case HASH_KEY_IS_STRING:
                //key = rb_str_new(key_str, key_len);
                key = rb_str_new_cstr(key_str);
                break;
            case HASH_KEY_IS_LONG:
                key = LONG2NUM(num_index);
                break;
        }

        rb_hash_aset(ret, key, val);
        zend_hash_move_forward_ex(ht, &pos);
    }
    return ret;
}
开发者ID:Epictetus,项目名称:php_embed,代码行数:34,代码来源:convert.c


示例7: test_num2ull

static VALUE
test_num2ull(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%"PRI_LL_PREFIX"u", NUM2ULL(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例8: test_num2int

static VALUE
test_num2int(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%d", NUM2INT(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例9: test_num2ulong

static VALUE
test_num2ulong(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%lu", NUM2ULONG(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例10: ossl_make_error

/*
 * Errors
 */
static VALUE
ossl_make_error(VALUE exc, const char *fmt, va_list args)
{
    VALUE str = Qnil;
    unsigned long e;

    if (fmt) {
	str = rb_vsprintf(fmt, args);
    }
    e = ERR_peek_last_error();
    if (e) {
	const char *msg = ERR_reason_error_string(e);

	if (NIL_P(str)) {
	    if (msg) str = rb_str_new_cstr(msg);
	}
	else {
	    if (RSTRING_LEN(str)) rb_str_cat2(str, ": ");
	    rb_str_cat2(str, msg ? msg : "(null)");
	}
	ossl_clear_error();
    }

    if (NIL_P(str)) str = rb_str_new(0, 0);
    return rb_exc_new3(exc, str);
}
开发者ID:dennyc,项目名称:openssl,代码行数:29,代码来源:ossl.c


示例11: xopenssl_md5

VALUE xopenssl_md5(VALUE self, VALUE str) {
  // We need to copy to a native string as we can't pass Ruby strings into native at the moment

  size_t str_len = RSTRING_LEN(str);
  char *str_ptr = RSTRING_PTR(str);

  unsigned char *native_str = alloca(str_len + 1);

  for (int n = 0; n < str_len; n++) {
    native_str[n] = str_ptr[n];
  }

  native_str[str_len] = '\0';

  unsigned char digest[MD5_DIGEST_LENGTH];

  MD5(native_str, str_len, digest);

  char *hex = alloca(MD5_DIGEST_LENGTH * 2 + 1);

  char *hex_ptr = hex;

  for (int n = 0; n < MD5_DIGEST_LENGTH; n++){
    hex_ptr += sprintf(hex_ptr, "%02x", digest[n]);
  }

  *hex_ptr = '\0';

  return rb_str_new_cstr(hex);
}
开发者ID:coderhs,项目名称:jruby,代码行数:30,代码来源:xopenssl.c


示例12: proxenet_ruby_load_file

int proxenet_ruby_load_file(plugin_t* plugin)
{
	char* filename;
	char* pathname;
	int res = 0;

        if(plugin->state != INACTIVE){
#ifdef DEBUG
                if(cfg->verbose > 2)
                        xlog(LOG_DEBUG, "Plugin '%s' is already loaded. Skipping...\n", plugin->name);
#endif
                return 0;
        }

	filename = plugin->filename;
        pathname = plugin->fullpath;

	rb_load_protect(rb_str_new_cstr(pathname), 0, &res);
	if (res != 0) {
		xlog(LOG_ERROR, "[Ruby] Error %d when load file '%s'\n", res, pathname);
		return -1;
	}

#ifdef DEBUG
	xlog(LOG_DEBUG, "%s\n", pathname);
#endif
	return 0;
}
开发者ID:thorgul,项目名称:proxenet,代码行数:28,代码来源:plugin-ruby.c


示例13: test_fix2short

static VALUE
test_fix2short(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%d", FIX2SHORT(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例14: test_fix2uint

static VALUE
test_fix2uint(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%u", FIX2UINT(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例15: rd_die_source_files

static VALUE rd_die_source_files(VALUE self)
{
    rd_die_t *die = GetDie(self);
    Dwarf_Signed cnt = 0;
    char **srcfiles = 0;
    Dwarf_Error err;
    VALUE files = Qnil;

    if (die->srcfiles != Qfalse) {
        return die->srcfiles;
    }

    if (chkerr2(dwarf_srcfiles(die->die, &srcfiles, &cnt, &err), &err)) {
        int i;

        files = rb_ary_new_capa(cnt);
        for (i = 0; i < cnt; i++) {
            VALUE file = rb_str_new_cstr(srcfiles[i]);
            OBJ_FREEZE(file);
            rb_ary_store(files, i, file);
            dwarf_dealloc(die->shared_data->dbg, srcfiles[i], DW_DLA_STRING);
        }
        dwarf_dealloc(die->shared_data->dbg, srcfiles, DW_DLA_LIST);
    }
    die->srcfiles = files;
    return files;
}
开发者ID:kubo,项目名称:rdwarf,代码行数:27,代码来源:rdwarf.c


示例16: test_fix2long

static VALUE
test_fix2long(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%ld", FIX2LONG(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例17: test_num2ushort

static VALUE
test_num2ushort(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%u", NUM2USHORT(num));
    return rb_str_new_cstr(buf);
}
开发者ID:0x00evil,项目名称:ruby,代码行数:7,代码来源:num2int.c


示例18: rb_str_new_cstr

		void KeyboardEvent::run_procs(VALUE *observer, int type, int *keycode)
		{
			for (int i = 0; i < RARRAY_LEN(*observer); i++)
			{

				if (keycode_names)
					key = rb_str_new_cstr(al_keycode_to_name(*keycode));
				else if (unichar)
					key = rb_str_new_cstr((char*)keycode);
				else
					key = INT2FIX(*keycode);
				
				rb_proc_call_with_block(rb_ary_entry(*observer, i), 1, &key, 
								        rb_ary_entry(*observer, i));
			}
		}
开发者ID:ArekX,项目名称:RAGE,代码行数:16,代码来源:KeyboardEvent.cpp


示例19: rb_grn_query_logger_log

static void
rb_grn_query_logger_log (grn_ctx *ctx, unsigned int flag,
                         const char *timestamp, const char *info,
                         const char *message, void *user_data)
{
    VALUE handler = (VALUE)user_data;

    if (NIL_P(handler))
        return;

    /* TODO: use rb_protect(). */
    rb_funcall(handler, id_log, 4,
               GRNQUERYLOGFLAGS2RVAL(flag),
               rb_str_new_cstr(timestamp),
               rb_str_new_cstr(info),
               rb_str_new_cstr(message));
}
开发者ID:genki,项目名称:rroonga,代码行数:17,代码来源:rb-grn-query-logger.c


示例20: rb_ct_date_to_string

/*
 * Convert date to a String
 *
 * @return [String]
 */
static VALUE
rb_ct_date_to_string(VALUE self)
{
    ct_date *date;
    char *format;
    CTDBRET rc;
    VRLEN size = 0;
    TEXT str;

    GetCTDate(self, date);

    switch ( date->type ) {
        case CTDATE_MDCY :
            format = (char *)"%m/%d/%Y";
            break;
        case CTDATE_DMCY : 
            format = (char *)"%m/%d/%y";
            break;
        case CTDATE_CYMD :
            format = (char *)"%d/%m/%Y";
            break;
        case CTDATE_MDY :
            format = (char *)"%d/%m/%y";
            break;
        case CTDATE_DMY :
            format = (char *)"%Y%m%d";
            break;
        case CTDATE_YMD :
            format = (char *)"%y%m%d";
            break;
        default :
            rb_raise(cCTError, "Unexpected default date format");
            break;
    }
    
    if ( date->value > 0 ) {
        size = (VRLEN)(strlen(format) + 3);
        if ( (rc = ctdbDateToString(date->value, date->type, &str, size) ) != CTDBRET_OK )
            rb_raise(cCTError, "[%d] ctdbDateToString failed.", rc);
        
        return rb_str_new_cstr(&str);
    } else
        return rb_str_new_cstr("");

}
开发者ID:jshafer817,项目名称:ctdb-rb,代码行数:50,代码来源:ct_date.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ rb_str_set_len函数代码示例发布时间:2022-05-30
下一篇:
C++ rb_str_new2函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap