如何在开局方案中从C函数返回符号?

时间:2013-02-17 17:31:23

标签: c scheme ffi gambit

我在c-lambda后面有一个C函数,它需要用select(2)调用进行一些grubbing并决定返回一个方案符号作为它的作用的指示,以及是否有错误条件发生了。如何从C中获取一个命名符号作为___SCMOBJ(或任何更合适的东西)在文档中没有解释,并且维基似乎已经失败了。从gambit.h开始也不是很明显,是否有一个用于此目的的宏。

开箱即可吗?我现在的解决方法是将可返回符号作为函数的参数传递,但是如果我希望能够返回一组更大的符号,那么这将很快变得非常笨拙。

1 个答案:

答案 0 :(得分:0)

我问了这个问题on the gambit-c mailing list。主要有三种回应:

  1. Export string->symbol to C
  2. Build a lookup table before calling into C
  3. Upgrade gambit
  4. 我现在和(1)一起去,因为我想要与Debian Squeeze的开局兼容,而且我不会认为性能打击会很重要。