如何在C程序中从ruby获取以printf格式传递的所有参数?

时间:2011-09-19 05:26:17

标签: c ruby

  

可能重复:
  How to get all arguments from following function in c/c++?

我已经实现了Ruby C扩展(即从ruby脚本调用C函数)以下是C文件“cImplementation.c”中实现的变量参数函数

#include<stdio.h>
static VALUE cFunction(VALUE self, const char* fmt, ...) 
{
   char buf[256];
   va_list args;
   va_start(args, fmt);
   if(vsnprintf(buf, sizeof(buf), fmt, args) > 0)
   fputs(buf, stderr);
   va_end(args); 

   return Qnil;
}
void Init_MyRuby()
{
     VALUE MRuby = rb_define_module("MyRuby");
     rb_define_singleton_method(MRuby, "cFunction", cFunction, 1);
}  

以下是通过pssing printf格式化字符串调用cFuncton()方法的ruby脚本代码,如下所示:

require 'cFile' 
MyRuby::cFunction("My Message:: %s, My Value:: %d", "Hi Im here", 100 )

任何人都可以建议我如何在C语言中访问这个printf格式的字符串,以便按照访问说明符打印值? 例如,C函数中的输出预期为=&gt;我的留言::嗨我在这里,我的价值:: 100 提前致谢。

0 个答案:

没有答案