It’s pretty impressive how easy it is to call C functions from Lisp, once you know the proper FFI voodoo. For example, this is how I accessed the standard C library function time
from CLISP on my Linux system.
(ffi:def-call-out time (:arguments (tloc (ffi:c-ptr-null ffi:int) :in)) (:library "/lib/libc.so.6") (:return-type ffi:int))
…
CL-USER> (time nil) 1143649485
Historically, different Lisp implementations have had different FFI syntax though there are things like UFFI and CFFI that are supposed to ameliorate that.
And depending on what Lisp you’re using, you might be able to use SWIG to jumpstart the process.