RosettaCodeData/Task/Call-a-foreign-language-fun.../Common-Lisp/call-a-foreign-language-fun...

8 lines
316 B
Common Lisp

CL-USER> (let* ((string "Hello World!")
(c-string (cffi:foreign-funcall "strdup" :string string :pointer)))
(unwind-protect (write-line (cffi:foreign-string-to-lisp c-string))
(cffi:foreign-funcall "free" :pointer c-string :void))
(values))
Hello World!
; No value