Я хочу написать 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
?