home | help
SNOBOL4FFI(3)			 CSNOBOL4 Manual		   SNOBOL4FFI(3)

NAME
     snobol4ffi - Foreign Function Interface for SNOBOL4

SYNOPSYS
	 -INCLUDE 'ffi.sno'
		 dl = FFI_DLOPEN("/usr/lib/libm.so")
		 sym = FFI_DLSYM(dl, "hypot")
		 DEFINE_FFI("hypot(double,double)double", sym)
		 OUTPUT = hypot(3, 4)

DESCRIPTION
     FFI_DLOPEN(filename)
	 takes	the  path  of a dynamicly loadable executable file and returns a
	 value which can be passed to FFI_DLSYM().

     FFI_DLSYM(library,function)
	 takes a library value returned by FFI_DLOPEN(), and  a  function  name,
	 and returns a value which can be passed to DEFINE_FFI().

     DEFINE_FFI(prototype,pointer)
	 defines  a SNOBOL4 function that calls an external function via ffi(3).
	 prototype contains a string name for the function followed by	a  comma
	 separated list of parameter types inside of parenthesis (any of: sint8,
	 sint16,  sint32,  sint64, uint8, uint16, uint32, uint64, schar, sshort,
	 sint, slong, uchar, ushort, uint,  ulong,  float,  double,  longdouble,
	 pointer),  followed by a return type, which can be any of the above pa-
	 rameter types, or void, string, freestring.  pointer  is  a  value  re-
	 turned by FFI_DLSYM().

SEE ALSO
     snobol4(1), ffi(3), dlopen(3)

AUTHOR
     Philip L. Budne
     Inspired by an FFI interface by Fred Weigel

CSNOBOL4B 2.3.1 		 March 31, 2022 		   SNOBOL4FFI(3)

home | help