Next: , Previous: foreign-alloc, Up: Pointers


foreign-symbol-pointer

Syntax

— Function: foreign-symbol-pointer foreign-name &key library ⇒ pointer

Arguments and Values

foreign-name
A string.
pointer
A foreign pointer, or nil.
library
A Lisp symbol or an instance of foreign-library.

Description

The function foreign-symbol-pointer will return a foreign pointer corresponding to the foreign symbol denoted by the string foreign-name. If a foreign symbol named foreign-name doesn't exist, nil is returned.

ABI name manglings will be performed on foreign-name by foreign-symbol-pointer if necessary. (eg: adding a leading underscore on darwin/ppc)

library should name a foreign library as defined by define-foreign-library, :default (which is the default) or an instance of foreign-library as returned by load-foreign-library.

Important note: do not keep these pointers across saved Lisp cores as the foreign-library may move across sessions.

Examples

    CFFI> (foreign-symbol-pointer "errno")
    ⇒ #<A Mac Pointer #xA0008130>
    CFFI> (foreign-symbol-pointer "strerror")
    ⇒ #<A Mac Pointer #x9002D0F8>
    CFFI> (foreign-funcall-pointer * () :int (mem-ref ** :int) :string)
    ⇒ "No such file or directory"
    
    CFFI> (foreign-symbol-pointer "inexistent symbol")
    ⇒ NIL

See Also

defcvar