Hello,
On Sun, Dec 12, 2010 at 1:10 AM, pepone.onrez pepone.onrez@gmail.com wrote:
(cffi:with-foreign-object (ifa 'ifaddrs) (ice-cffi:getifaddrs ifa) (cffi:foreign-string-to-lisp (cffi:foreign-slot-value ifa 'ifaddrs 'name)))
Here's getifaddrs's signature: int getifaddrs(struct ifaddrs **ifap);
getifaddrs() allocates the actual struct. Here's how it would be called using C code:
struct ifaddrs *p; getifaddrs(&p); // do something with p->name
The equivalent CFFI code would be something like:
(with-foreign-object (p :pointer) (getifaddrs p) (foreign-slot-value (mem-ref p :pointer) 'ifaddrs 'name))
If you define NAME's type to be :STRING, that code will yield a Lisp string.
HTH,