使用 PLT-Scheme-FFI,我想调用 C 函数
unsigned long mysql_real_escape_string(MYSQL *con, char *to, const char *from, unsigned long length)
从一个方案过程并继续在调用者内部使用生成的字符串“to”。方案过程的调用将如下所示:
(define-values (to) (escape-string con ??? from (+ (string-length from) 1)))
其中 con 是与 MySQL-DB 的有效连接,而 escape-string 定义为
(define escape-string (get-ffi-obj "mysql_real_escape_string" libmysql
(_fun (con to from length) ::
(con : _pointer)
(to : (_ptr io _byte))
(from : _string)
(length : _ulong)
-> (res : _ulong)
-> (values out))))
问题是,我不知道要传递什么'???' 在调用 escape-string 时也不知道 escape-string 的定义是否正确。
任何帮助,将不胜感激。
问候,
拉尔夫·S。