FFI в схеме Chez для C-функций с переменными аргументами - PullRequest
1 голос
/ 06 июля 2019

Я хочу написать FFI для printf функции C в схеме Chez, используя foreign-procedure. Но я не могу понять, что мне следует указывать в качестве сигнатуры, поскольку последний аргумент функции printf является аргументом с переменным числом аргументов. Вот мой код:

(import (chezscheme))

(define (print-format)
    (foreign-procedure "printf" 
        (string void*) int)) ;; <-- Here, the type format is "(arg arg ...) ret"

(print-format "Hello, %s!" "Ryan")

Я тоже это пробовал, но безрезультатно:

(define (print-format . args)
    (foreign-procedure "printf" 
        (string args) int))

Это тоже не работает:

(define (print-format)
    (foreign-procedure "printf" 
        (string ...) int))

Как указать переменные аргументы в сигнатуре функции для foreign-procedure?

...